Function at 0x41d820
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x10], ebx
mov eax, dword [esi + 4]
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x41d845
mov eax, dword [esi]
mov eax, dword [eax + 0x50]
mov dword [ebp - 0xc], eax
cmp byte [esi + 0x1d6], 3
mov dword [ebp - 8], 4
jne 0x41d868
cmp byte [esi + 0x1d7], 3
jb 0x41d868
movzx eax, word [eax + 2]
add eax, 6
mov dword [ebp - 8], eax
mov edi, dword [esi + 0x1068]
test edi, edi
jne 0x41d880
mov eax, dword [esi]
mov edi, dword [eax + 0x24]
test edi, edi
je 0x41d8da
nop dword [eax + eax]
mov esi, dword [edi + 4]
test esi, esi
je 0x41d8cd
mov esi, dword [esi + 0x4c8]
cmp esi, 0x80
jae 0x41d89c
mov eax, 1
jmp 0x41d8c6
mov edx, 4
mov ecx, 0x18
mov eax, esi
shr eax, cl
test eax, eax
jne 0x41d8b6
sub ecx, 8
sub edx, 1
jne 0x41d8a6
mov eax, 1
test dl, dl
je 0x41d8c6
nop
inc eax
add dl, 0xff
jne 0x41d8c0
add eax, esi
add ebx, 3
add ebx, eax
mov edi, dword [edi + 0x10]
test edi, edi
jne 0x41d880
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x10], ebx
mov edi, dword [ebp - 8]
mov eax, 0x180
add edi, ebx
test word [esi + 0x310], ax
jne 0x41dc66
test byte [esi + 0x30e], 0x80
lea ebx, [edi + 9]
mov dword [ebp - 0x18], ebx
jne 0x41d917
cmp byte [esi + 0x304], 0
je 0x41d935
cmp byte [esi + 0xc9], 0
je 0x41d935
add ebx, 0x66
jmp 0x41d929
cmp byte [esi + 0x304], 0
je 0x41d935
cmp byte [esi + 0xc9], 0
je 0x41d935
mov ecx, esi
call fcn.0041d180
add ebx, eax
mov dword [ebp - 0x18], ebx
mov eax, 0x800
mov edx, ebx
or word [esi + 0x312], ax
mov ecx, esi
call fcn.00416d10
test eax, eax
jne 0x41dc68
mov ecx, dword [esi + 0x10c]
mov edx, edi
add ecx, dword [esi + 0x108]
mov eax, dword [esi + 0x104]
add eax, ecx
push esi
push 0xd
mov ecx, eax
mov dword [ebp - 4], eax
call fcn.00416630
mov edx, dword [ebp - 4]
add esp, 8
mov byte [edx + 9], 1
mov al, byte [esi + 0x315]
cmp al, 0xc0
je 0x41d98d
cmp al, 0xcc
jne 0x41d998
cmp byte [esi + 0x1e6], 3
mov al, 0x40
je 0x41d99a
mov al, 1
mov byte [edx + 0xa], al
mov ebx, 0xb
cmp byte [esi + 0x1d6], 3
jne 0x41d9e8
cmp byte [esi + 0x1d7], 3
jb 0x41d9e8
mov edi, dword [ebp - 0xc]
movzx ecx, word [edi + 2]
mov eax, ecx
mov byte [edx + 0xc], cl
shr eax, 8
mov byte [edx + 0xb], al
movzx eax, word [edi + 2]
push eax
lea eax, [edi + 0x130]
push eax
lea eax, [edx + 0xd]
push eax
call fcn.0046ae20
movzx ebx, word [edi + 2]
add esp, 0xc
mov edx, dword [ebp - 4]
add ebx, 0xd
mov ecx, dword [ebp - 0x10]
mov eax, ecx
shr eax, 8
mov byte [edx + ebx], al
mov byte [edx + ebx + 1], cl
add ebx, 2
mov eax, dword [esi + 0x1068]
mov dword [ebp - 8], eax
test eax, eax
jne 0x41da17
mov eax, dword [esi]
mov eax, dword [eax + 0x24]
mov dword [ebp - 8], eax
test eax, eax
je 0x41db45
mov edi, dword [eax + 4]
mov dword [ebp - 0x10], edi
test edi, edi
je 0x41db31
mov esi, dword [edi + 0x4c8]
cmp esi, 0x80
jae 0x41da3a
mov ecx, 1
jmp 0x41da66
mov edx, 4
mov ecx, 0x18
mov eax, esi
shr eax, cl
test eax, eax
jne 0x41da54
sub ecx, 8
sub edx, 1
jne 0x41da44
mov ecx, 1
test dl, dl
je 0x41da66
nop dword [eax]
inc ecx
add dl, 0xff
jne 0x41da60
mov ax, word [edi + 0x4c8]
inc cx
mov esi, dword [ebp - 4]
add ax, cx
movzx ecx, ax
mov eax, ecx
shr eax, 8
mov byte [esi + ebx], al
mov byte [esi + ebx + 1], cl
add ebx, 2
mov dword [ebp - 0xc], ebx
lea edi, [esi + ebx]
mov ebx, dword [ebp - 0x10]
mov ebx, dword [ebx + 0x4c8]
test edi, edi
je 0x41daa0
mov byte [edi], 0x30
inc edi
jmp 0x41daa2
xor edi, edi
cmp ebx, 0x80
jae 0x41dab7
test edi, edi
je 0x41dab0
mov byte [edi], bl
mov esi, 1
jmp 0x41db04
mov edx, 4
mov ecx, 0x18
mov eax, ebx
shr eax, cl
test eax, eax
jne 0x41dad1
sub ecx, 8
sub edx, 1
jne 0x41dac1
test edi, edi
je 0x41dadb
mov al, dl
or al, 0x80
mov byte [edi], al
mov esi, 1
test dl, dl
je 0x41db04
movzx eax, dl
lea ecx, [eax*8 - 8]
nop
test edi, edi
je 0x41dafb
mov eax, ebx
shr eax, cl
mov byte [edi + esi], al
inc esi
sub ecx, 8
add dl, 0xff
jne 0x41daf0
mov ebx, dword [ebp - 0xc]
inc ebx
add ebx, esi
mov esi, dword [ebp - 0x10]
push dword [esi + 0x4c8]
lea eax, [esi + 0x37c]
push eax
mov eax, dword [ebp - 4]
add eax, ebx
push eax
call fcn.0046ae20
mov eax, dword [ebp - 8]
add esp, 0xc
add ebx, dword [esi + 0x4c8]
mov eax, dword [eax + 0x10]
mov dword [ebp - 8], eax
test eax, eax
jne 0x41da17
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 4]
cmp byte [esi + 0x304], 0
je 0x41dbda
cmp byte [esi + 0xc9], 0
je 0x41dbda
movzx edi, word [esi + 0x30e]
and edi, 0x80
or edi, 0x50
shr edi, 4
sub ebx, edi
test ebx, ebx
jg 0x41db84
mov eax, 0xffffff7c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.004439a0
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x41db9e
lea eax, [ecx - 0x7d]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
push ebx
add eax, edi
push eax
push ecx
call fcn.0046ae20
mov edi, dword [ebp - 0x14]
mov ecx, esi
mov edx, dword [ebp - 4]
push 1
push 0x16
push ebx
push edi
push dword [ebp - 0x18]
call fcn.0041ca80
add esp, 0x20
mov ecx, edi
mov ebx, eax
call fcn.004439c0
test ebx, ebx
jns 0x41dc01
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x70], 0
jne 0x41dbec
mov eax, 0xffffff53
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [ebx - 5]
add edx, 5
push eax
mov ecx, esi
call fcn.004163e0
add esp, 4
test eax, eax
jne 0x41dc68
cmp byte [esi + 0x3f9], 0
je 0x41dc23
sub esp, 8
mov ecx, esi
push 1
push ebx
push dword [ebp - 4]
push 0x16
call fcn.0041f1f0
add esp, 0x18
test eax, eax
jne 0x41dc68
add dword [esi + 0x108], ebx
mov eax, 0x1000
test word [esi + 0x310], ax
je 0x41dc4c
mov edx, 0xf7ff
xor eax, eax
and word [esi + 0x312], dx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.00416a90
mov edx, 0xf7ff
and word [esi + 0x312], dx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret