Function at 0x41c9e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
push ebx
push esi
mov esi, ecx
mov dword [esp + 0x20], edx
push edi
xor ebx, ebx
mov dword [esp + 0x20], esi
mov dword [esp + 0x14], ebx
mov edi, dword [esi + 0xc]
mov ecx, dword [esi + 0x2c]
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], ecx
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x24]
bswap eax
mov dword [esp + 0x3c], eax
cmp eax, ecx
jb 0x41ca42
push 0x53d0b4
push 0xff6e
push 0x53d048
push 0x53d02c
push 0xb
call fcn.00407720
add esp, 0x14
lea eax, [ebx + 0xb]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test eax, eax
je 0x41d331
mov dl, byte [ebp + 0x10]
xor cl, cl
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x38], ebx
cmp dl, 1
jne 0x41ca8e
cmp eax, dword [esp + 0x30]
ja 0x41caa0
lea ecx, [esp + 0x13]
mov edx, eax
push 0
push ecx
mov ecx, esi
call fcn.00417490
add esp, 8
test eax, eax
jne 0x41d5cf
cmp byte [esp + 0x13], 2
jne 0x41caa0
mov byte [esp + 0x18], 1
jmp 0x41caa0
cmp dl, 2
movzx ecx, cl
mov eax, 1
cmove ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, dword [edi + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x41cac0
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x41cac0
cmp dword [edx + 0x60], ebx
je 0x41caed
call fcn.004118e0
jmp 0x41cae5
mov eax, dword [edx + 0x28]
test eax, eax
jne 0x41d5cf
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x41cae0
call fcn.00413410
jmp 0x41cae5
call fcn.00413340
test eax, eax
jne 0x41d5cf
mov edx, dword [esp + 0x3c]
mov eax, dword [edi + 0x38]
lea ecx, [edx - 1]
bswap ecx
mov dword [eax + 0x24], ecx
nop dword [eax]
mov eax, ebx
mov dword [esp + 0x2c], eax
test eax, eax
je 0x41cb11
mov eax, dword [ebx + 0x38]
mov edi, dword [eax]
jmp 0x41cb17
mov eax, dword [edi + 0x38]
mov edi, dword [eax + 0x20]
bswap edi
cmp edi, dword [esp + 0x30]
ja 0x41d2a3
mov ecx, dword [esp + 0x38]
mov eax, ecx
inc ecx
mov dword [esp + 0x38], ecx
cmp eax, edx
ja 0x41d2a3
lea eax, [esp + 0x14]
mov edx, edi
push 0
push eax
mov ecx, esi
call fcn.004188f0
mov esi, eax
add esp, 8
mov dword [esp + 0x44], esi
test esi, esi
jne 0x41d2c6
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x38]
mov dword [esp + 0x28], eax
mov ebx, dword [eax + 4]
bswap ebx
test ebx, ebx
jne 0x41cbf1
cmp byte [esp + 0x18], bl
jne 0x41cbf1
mov ecx, dword [edx + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x41cb99
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x41cb99
cmp dword [edx + 0x60], ebx
je 0x41cb95
call fcn.004118e0
jmp 0x41cbbe
xor esi, esi
jmp 0x41cbc8
mov esi, dword [edx + 0x28]
test esi, esi
jne 0x41d24a
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x41cbb9
call fcn.00413410
jmp 0x41cbbe
call fcn.00413340
mov esi, eax
test esi, esi
jne 0x41d24a
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
mov dword [eax], edi
mov eax, dword [edx + 0x38]
mov edi, dword [esp + 0x24]
mov ecx, dword [ecx + 0x38]
mov eax, dword [eax]
mov dword [edi], edx
xor edx, edx
mov dword [ecx + 0x20], eax
mov dword [esp + 0x14], edx
jmp 0x41d13f
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x24]
shr eax, 2
sub eax, 2
cmp ebx, eax
ja 0x41d227
cmp byte [esp + 0x18], 0
mov ecx, dword [ebp + 0xc]
je 0x41cee7
cmp ecx, edi
je 0x41cc28
jbe 0x41cee7
cmp byte [ebp + 0x10], 2
jne 0x41cee7
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0x48]
mov byte [esp + 0x18], 0
mov dword [eax], edi
test byte [ecx + 0x1c], 4
mov eax, dword [esp + 0x24]
mov dword [eax], edx
mov edx, dword [ecx + 0x14]
je 0x41cc5d
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x41cc5d
cmp dword [edx + 0x60], 0
je 0x41cc59
call fcn.004118e0
jmp 0x41cc82
xor esi, esi
jmp 0x41cc8c
mov esi, dword [edx + 0x28]
test esi, esi
jne 0x41d24a
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x41cc7d
call fcn.00413410
jmp 0x41cc82
call fcn.00413340
mov esi, eax
test esi, esi
jne 0x41d24a
test ebx, ebx
jne 0x41cd38
mov ebx, dword [esp + 0x2c]
test ebx, ebx
jne 0x41ccb8
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x14], ebx
mov eax, dword [eax + 0x38]
mov ecx, dword [ecx + 0x38]
mov eax, dword [eax]
mov dword [ecx + 0x20], eax
jmp 0x41d13f
mov ecx, dword [ebx + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x41ccf2
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x41ccf2
cmp dword [edx + 0x60], 0
je 0x41ccd9
call fcn.004118e0
jmp 0x41cd17
mov eax, dword [esp + 0x14]
xor esi, esi
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x14], esi
mov eax, dword [eax + 0x38]
mov eax, dword [eax]
mov dword [ecx], eax
jmp 0x41d13f
mov esi, dword [edx + 0x28]
test esi, esi
jne 0x41d24a
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x41cd12
call fcn.00413410
jmp 0x41cd17
call fcn.00413340
mov esi, eax
test esi, esi
jne 0x41d24a
mov eax, dword [esp + 0x14]
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x14], esi
mov eax, dword [eax + 0x38]
mov eax, dword [eax]
mov dword [ecx], eax
jmp 0x41d13f
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 8]
mov edx, eax
bswap edx
mov dword [esp + 0x28], eax
cmp edx, dword [esp + 0x30]
ja 0x41d20f
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x40]
push 0
push eax
call fcn.004188f0
mov esi, eax
add esp, 8
test esi, esi
jne 0x41d24a
mov edi, dword [esp + 0x40]
mov ecx, dword [edi + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x41cd99
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x41cd99
cmp dword [edx + 0x60], esi
je 0x41cd95
call fcn.004118e0
jmp 0x41cdbe
xor esi, esi
jmp 0x41cdc8
mov esi, dword [edx + 0x28]
test esi, esi
jne 0x41d1be
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x41cdb9
call fcn.00413410
jmp 0x41cdbe
call fcn.00413340
mov esi, eax
test esi, esi
jne 0x41d1be
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 0x38]
mov eax, dword [eax + 0x38]
mov eax, dword [eax]
mov dword [ecx], eax
lea ecx, [ebx - 1]
mov eax, dword [edi + 0x38]
bswap ecx
mov dword [eax + 4], ecx
lea eax, [ebx*4 - 4]
push eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
add eax, 0xc
push eax
mov eax, dword [edi + 0x38]
add eax, 8
push eax
call fcn.004e8950
mov edx, dword [edi + 0x48]
add esp, 0xc
test byte [edx + 0x1c], 0x20
je 0x41ce4b
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov edi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov ebx, dword [edi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004e59d0
push edx
push eax
mov eax, dword [ebx + 0x48]
push edi
call eax
add esp, 0x10
jmp 0x41ce52
mov ecx, edx
call fcn.0040d5a0
mov ebx, dword [esp + 0x2c]
test ebx, ebx
jne 0x41ce71
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x14], ebx
mov eax, dword [ecx + 0x38]
mov ecx, dword [esp + 0x28]
mov dword [eax + 0x20], ecx
jmp 0x41d13f
mov ecx, dword [ebx + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x41cea6
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x41cea6
cmp dword [edx + 0x60], 0
je 0x41ce92
call fcn.004118e0
jmp 0x41cecb
mov eax, dword [ebx + 0x38]
xor esi, esi
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x14], esi
mov dword [eax], ecx
jmp 0x41d13f
mov esi, dword [edx + 0x28]
test esi, esi
jne 0x41d24a
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x41cec6
call fcn.00413410
jmp 0x41cecb
call fcn.00413340
mov esi, eax
test esi, esi
jne 0x41d24a
mov eax, dword [ebx + 0x38]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x14], esi
mov dword [eax], ecx
jmp 0x41d13f
test ebx, ebx
je 0x41d13f
xor eax, eax
mov dword [esp + 0x1c], eax
test ecx, ecx
je 0x41cfa0
mov edx, dword [esp + 0x28]
add edx, 8
cmp byte [ebp + 0x10], 2
jne 0x41cf32
mov edi, dword [ebp + 0xc]
xor ecx, ecx
nop
mov eax, dword [edx]
bswap eax
cmp eax, edi
jbe 0x41cf28
inc ecx
add edx, 4
cmp ecx, ebx
jb 0x41cf10
mov eax, dword [esp + 0x1c]
mov ecx, edi
jmp 0x41cfa0
mov eax, ecx
mov dword [esp + 0x1c], ecx
mov ecx, edi
jmp 0x41cfa0
mov edx, dword [edx]
bswap edx
sub edx, ecx
jns 0x41cf4b
cmp edx, 0x80000000
jne 0x41cf49
mov edx, 0x7fffffff
jmp 0x41cf4b
neg edx
mov edi, 1
cmp ebx, edi
jbe 0x41cfa0
mov esi, dword [esp + 0x28]
nop dword [eax + eax]
mov ecx, dword [esi + edi*4 + 8]
bswap ecx
sub ecx, dword [ebp + 0xc]
jns 0x41cf7c
cmp ecx, 0x80000000
jne 0x41cf7a
mov ecx, 0x7fffffff
jmp 0x41cf7c
neg ecx
cmp ecx, edx
mov eax, edi
cmovge eax, dword [esp + 0x1c]
inc edi
cmp ecx, edx
mov dword [esp + 0x1c], eax
cmovge ecx, edx
mov edx, ecx
cmp edi, ebx
jb 0x41cf60
mov esi, dword [esp + 0x44]
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x28]
lea edi, [edx + eax*4]
mov eax, dword [edi + 8]
bswap eax
cmp eax, dword [esp + 0x30]
ja 0x41d21b
cmp byte [esp + 0x18], 0
je 0x41cfd1
cmp eax, ecx
je 0x41cfd1
jae 0x41d13f
cmp byte [ebp + 0x10], 2
jne 0x41d13f
mov esi, dword [ebp + 8]
mov dword [esi], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x41cffb
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x41cffb
cmp dword [edx + 0x60], 0
je 0x41d02d
call fcn.004118e0
jmp 0x41d020
mov esi, dword [edx + 0x28]
test esi, esi
jne 0x41d24a
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x41d01b
call fcn.00413410
jmp 0x41d020
call fcn.00413340
mov esi, eax
test esi, esi
jne 0x41d24a
mov esi, dword [ebp + 8]
lea ecx, [ebx - 1]
cmp dword [esp + 0x1c], ecx
jae 0x41d041
mov eax, dword [esp + 0x28]
mov eax, dword [eax + ebx*4 + 4]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x20]
mov esi, dword [esi]
bswap ecx
mov dword [eax + 4], ecx
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
je 0x41d06a
cmp esi, dword [ecx]
ja 0x41d066
mov edx, esi
call fcn.0040ce70
test eax, eax
je 0x41d06a
xor eax, eax
jmp 0x41d06f
mov eax, 1
mov edi, dword [esp + 0x24]
mov edx, esi
push eax
push edi
mov ecx, ebx
call fcn.004188f0
mov esi, eax
add esp, 8
test esi, esi
jne 0x41d13a
mov eax, dword [edi]
mov ecx, dword [eax + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x41d0b4
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x41d0b4
cmp dword [edx + 0x60], esi
je 0x41d0ad
call fcn.004118e0
jmp 0x41d0d5
xor esi, esi
jmp 0x41d13a
mov esi, dword [edx + 0x28]
test esi, esi
jne 0x41d0db
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x41d0d0
call fcn.00413410
jmp 0x41d0d5
call fcn.00413340
mov esi, eax
test esi, esi
je 0x41d13a
mov edx, dword [edi]
test edx, edx
je 0x41d134
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x41d12d
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov edi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov ebx, dword [edi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004e59d0
push edx
push eax
mov eax, dword [ebx + 0x48]
push edi
call eax
mov edi, dword [esp + 0x34]
add esp, 0x10
jmp 0x41d134
mov ecx, edx
call fcn.0040d5a0
mov dword [edi], 0
mov byte [esp + 0x18], 0
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x41d196
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x41d18f
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov edi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov ebx, dword [edi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004e59d0
push edx
push eax
mov eax, dword [ebx + 0x48]
push edi
call eax
add esp, 0x10
jmp 0x41d196
mov ecx, edx
call fcn.0040d5a0
cmp byte [esp + 0x18], 0
mov dword [esp + 0x2c], 0
je 0x41d24a
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
jmp 0x41cb00
mov edx, dword [edi + 0x48]
test byte [edx + 0x1c], 0x20
je 0x41d206
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov edi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov ebx, dword [edi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004e59d0
push edx
push eax
mov eax, dword [ebx + 0x48]
push edi
call eax
add esp, 0x10
jmp 0x41d24a
mov ecx, edx
call fcn.0040d5a0
jmp 0x41d24a
push 0x53d0b4
push 0xffe5
jmp 0x41d231
push 0x53d0b4
push 0x10026
jmp 0x41d231
push 0x53d0b4
push 0xffc3
push 0x53d048
push 0x53d02c
push 0xb
call fcn.00407720
add esp, 0x14
mov esi, 0xb
mov eax, dword [esp + 0x14]
test eax, eax
je 0x41d2c6
mov edx, dword [eax + 0x48]
test byte [edx + 0x1c], 0x20
je 0x41d29a
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov edi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov ebx, dword [edi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004e59d0
push edx
push eax
mov eax, dword [ebx + 0x48]
push edi
call eax
add esp, 0x10
jmp 0x41d2c6
mov ecx, edx
call fcn.0040d5a0
jmp 0x41d2c6
push 0x53d0b4
push 0xffa6
push 0x53d048
push 0x53d02c
push 0xb
call fcn.00407720
add esp, 0x14
mov esi, 0xb
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x41d5cd
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x41d321
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov edi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov ebx, dword [edi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004e59d0
push edx
push eax
mov eax, dword [ebx + 0x48]
push edi
call eax
add esp, 0x10
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edx
call fcn.0040d5a0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x48]
xor eax, eax
cmp byte [esi + 0x13], al
sete al
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
mov dword [esp + 0x38], eax
je 0x41d35d
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x41d35d
cmp dword [edx + 0x60], ebx
je 0x41d38a
call fcn.004118e0
jmp 0x41d382
mov eax, dword [edx + 0x28]
test eax, eax
jne 0x41d5cf
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x41d37d
call fcn.00413410
jmp 0x41d382
call fcn.00413340
test eax, eax
jne 0x41d5cf
mov eax, dword [0x54b1cc]
xor edx, edx
div dword [esi + 0x20]
inc dword [esi + 0x2c]
mov edi, dword [esi + 0x2c]
lea ebx, [eax + 1]
cmp edi, ebx
jne 0x41d3a5
inc edi
mov dword [esi + 0x2c], edi
cmp byte [esi + 0x11], 0
mov ecx, edi
je 0x41d4d5
cmp edi, 2
jae 0x41d3ba
xor eax, eax
jmp 0x41d3e9
mov ecx, dword [esp + 0x20]
lea esi, [edi - 2]
mov eax, 0xcccccccd
mul dword [ecx + 0x24]
mov eax, esi
mov ecx, edx
xor edx, edx
shr ecx, 2
inc ecx
div ecx
sub esi, edx
lea eax, [esi + 2]
sub eax, ebx
neg eax
sbb eax, eax
add esi, 3
add eax, esi
mov esi, dword [esp + 0x20]
mov ecx, edi
cmp eax, edi
jne 0x41d4d5
push dword [esp + 0x38]
lea eax, [esp + 0x40]
mov dword [esp + 0x40], 0
push eax
mov edx, edi
mov ecx, esi
call fcn.004188f0
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x41d526
mov esi, dword [esp + 0x3c]
mov ecx, dword [esi + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x41d442
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x41d442
cmp dword [edx + 0x60], ebx
je 0x41d43e
call fcn.004118e0
jmp 0x41d463
xor ebx, ebx
jmp 0x41d465
mov ebx, dword [edx + 0x28]
test ebx, ebx
jne 0x41d465
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x41d45e
call fcn.00413410
jmp 0x41d463
call fcn.00413340
mov ebx, eax
mov edx, dword [esi + 0x48]
test byte [edx + 0x1c], 0x20
je 0x41d4ad
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004e59d0
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
add esp, 0x10
jmp 0x41d4b4
mov ecx, edx
call fcn.0040d5a0
test ebx, ebx
jne 0x41d526
mov esi, dword [esp + 0x20]
xor edx, edx
mov eax, dword [0x54b1cc]
div dword [esi + 0x20]
inc dword [esi + 0x2c]
mov ecx, dword [esi + 0x2c]
inc eax
cmp ecx, eax
jne 0x41d4d5
inc ecx
mov dword [esi + 0x2c], ecx
mov eax, dword [esi + 0xc]
push dword [esp + 0x38]
mov ebx, dword [esp + 0x28]
bswap ecx
mov eax, dword [eax + 0x38]
push ebx
mov dword [eax + 0x1c], ecx
mov ecx, esi
mov eax, dword [ebp + 8]
mov edx, dword [esi + 0x2c]
mov dword [eax], edx
call fcn.004188f0
add esp, 8
test eax, eax
jne 0x41d5cf
mov eax, dword [ebx]
mov ecx, dword [eax + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x41d53a
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x41d53a
cmp dword [edx + 0x60], 0
je 0x41d52f
call fcn.004118e0
jmp 0x41d55b
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor esi, esi
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [edx + 0x28]
test esi, esi
jne 0x41d561
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x41d556
call fcn.00413410
jmp 0x41d55b
call fcn.00413340
mov esi, eax
test esi, esi
je 0x41d5cd
mov edx, dword [ebx]
test edx, edx
je 0x41d5c7
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x41d5c0
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov edi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov ebx, dword [edi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004e59d0
push edx
push eax
mov eax, dword [ebx + 0x48]
push edi
call eax
mov ebx, dword [esp + 0x34]
add esp, 0x10
mov eax, esi
mov dword [ebx], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edx
call fcn.0040d5a0
mov dword [ebx], 0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret