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

Disassembly:
sub esp, 0x78
xor eax, eax
push esi
mov dword [esp + 0x10], eax
mov byte [esp + 6], al
mov dword [esp + 0x44], eax
mov al, byte [0x4690c4]
mov esi, ecx
test al, al
mov dword [esp + 0x18], esi
je 0x440b57
mov eax, dword [0x481000]
mov ecx, dword [eax + 0x1c]
shl ecx, 2
push ecx
call fcn.004516f0
mov dword [0x480ffc], eax
mov edx, dword [esp + 0x80]
mov ecx, dword [0x401e78]
push ecx
mov eax, dword [edx]
mov edx, dword [0x480fc0]
push edx
mov dword [esp + 0x34], eax
call fcn.0040e250
mov dword [esp + 0x48], eax
lea eax, [esi + 0x1b8]
lea ecx, [esp + 0x6c]
push eax
push ecx
call fcn.0040f7e0
lea edx, [esp + 0x6c]
push edx
call fcn.0040f720
test al, al
je 0x44175a
push ebx
push ebp
push edi
mov ebp, dword [esi + 0x1e8]
mov ecx, dword [esp + 0x84]
cmp ebp, 1
mov byte [esp + 0x13], 0
mov dword [esp + 0x30], ecx
jne 0x440c20
cmp ecx, dword [0x480fec]
jne 0x440c20
mov al, byte [0x4690c4]
test al, al
je 0x441745
mov eax, dword [0x480fa8]
lea ecx, [esp + 0x58]
push eax
push ecx
call fcn.0040f8f0
lea edx, [esp + 0x58]
push edx
call fcn.0040f920
test al, al
je 0x441745
mov eax, dword [esp + 0x64]
mov ebx, dword [esi + 0x244]
lea edx, [esp + 0x58]
mov ecx, dword [eax + 8]
push edx
shl ecx, 1
shr ecx, 4
add ebx, ecx
mov dword [esi + 0x244], ebx
call fcn.0040f920
test al, al
jne 0x440bf3
jmp 0x441745
mov edx, dword [esp + 0x90]
mov eax, dword [ecx + 0x1c]
and eax, 0x1e0
mov edx, dword [edx]
mov dword [esp + 0x44], eax
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x8c]
mov edi, dword [edx]
mov dl, byte [esp + 0x12]
test dl, dl
mov dword [esp + 0x20], edi
jne 0x440c5b
cmp eax, 0x20
je 0x440c5b
mov byte [esp + 0x12], 1
mov dword [esi + 0x5c], edi
mov eax, dword [0x480ff8]
mov dword [esp + 0x28], edi
cmp eax, ecx
jne 0x440d85
test ebp, ebp
jne 0x440d85
mov cl, byte [0x496694]
test cl, cl
jne 0x440d85
mov cl, byte [esi + 0x132]
test cl, cl
jne 0x440d85
mov cl, byte [esi + 0x147]
test cl, cl
jne 0x440d85
mov ecx, dword [esi + 0xd0]
shl ecx, 1
mov dword [eax + 0xc], ecx
mov edx, dword [esi + 0x58]
mov ecx, dword [esi + 0xd0]
and edx, 0xfffff000
mov eax, edi
sub eax, edx
add eax, 0xfff
shr eax, 0xc
cmp eax, ecx
jbe 0x440cca
mov eax, ecx
mov ecx, dword [0x480ff8]
lea edx, [eax + eax*4]
shl edx, 1
mov ebx, dword [ecx + 0xc]
add ebx, edx
mov dword [ecx + 0xc], ebx
mov cl, byte [esi + 0x13e]
test cl, cl
je 0x440d00
xor edx, edx
mov ecx, dword [0x480ff8]
mov dx, word [esi + 0x32]
imul edx, eax
mov eax, dword [ecx + 0xc]
shl edx, 1
add eax, edx
mov dword [ecx + 0xc], eax
mov al, byte [0x481160]
test al, al
je 0x440d68
mov al, byte [0x496694]
test al, al
jne 0x440d68
mov al, byte [0x480ed5]
test al, al
jne 0x440d68
mov eax, dword [0x480ff8]
mov eax, dword [eax + 0xc]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
shl ecx, 1
mul ecx
mov ebx, edx
shr ebx, 5
add ebx, 0x64
cmp word [esi + 0x30], 0x184
jne 0x440d41
add ebx, ebx
mov eax, dword [esi + 0x58]
mov edx, edi
sub edx, eax
push ebx
add edx, 0xfff
push eax
shr edx, 0xc
lea eax, [esi + 0x268]
push edx
push eax
call fcn.0043b470
mov eax, dword [0x480ff8]
add dword [eax + 0xc], ebx
mov ecx, dword [0x480ff8]
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x18]
add edi, eax
add ecx, eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], edi
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x68]
xor ebx, ebx
push edx
push eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x50], ebx
call fcn.0040f810
lea ecx, [esp + 0x68]
push ecx
call fcn.0040f840
test al, al
je 0x44157f
mov eax, dword [esp + 0x74]
mov cl, byte [0x4690c4]
mov esi, eax
test cl, cl
mov dword [esp + 0x34], esi
je 0x440e5a
mov edx, dword [esp + 0x30]
mov ecx, dword [0x480fec]
cmp edx, ecx
jne 0x440dfa
cmp eax, dword [0x480fb4]
je 0x441569
cmp eax, dword [0x480fb0]
je 0x441569
cmp eax, dword [0x480fb8]
je 0x441569
cmp eax, dword [0x480fa8]
jne 0x440e5a
mov cl, byte [0x496694]
test cl, cl
jne 0x440e5a
push eax
lea eax, [esp + 0x5c]
push eax
call fcn.0040f8f0
lea ecx, [esp + 0x58]
push ecx
call fcn.0040f920
test al, al
je 0x441569
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x64]
mov ebp, dword [esi + 0x244]
lea ecx, [esp + 0x58]
mov eax, dword [edx + 8]
push ecx
shl eax, 1
shr eax, 4
add ebp, eax
mov dword [esi + 0x244], ebp
call fcn.0040f920
test al, al
jne 0x440e2d
jmp 0x441569
xor ecx, ecx
mov cl, byte [eax + 0x18]
lea eax, [ecx - 1]
not eax
and eax, edi
cmp eax, edi
je 0x440e6c
add eax, ecx
sub eax, edi
je 0x440ea9
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x14]
add ebp, eax
mov dword [esp + 0x18], ebp
mov ebp, dword [ebx + 8]
add ecx, eax
add edi, eax
add edx, eax
mov dword [esp + 0x48], ecx
mov ecx, dword [ebx + 0x14]
add ebp, eax
and eax, 0xff
mov dword [esp + 0x20], edi
add ecx, eax
mov dword [esp + 0x14], edx
mov dword [ebx + 8], ebp
mov dword [ebx + 0x14], ecx
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x58]
push esi
push eax
mov dword [esi + 8], edi
mov dword [esi + 0x10], edx
mov dword [esp + 0x34], 0
call fcn.0040f8f0
lea ecx, [esp + 0x58]
push ecx
call fcn.0040f920
test al, al
je 0x441179
mov ebp, dword [esp + 0x64]
mov dword [esp + 0x3c], ebp
lea eax, [ebp + 4]
mov dword [esp + 0x4c], eax
mov eax, dword [eax]
test ah, 8
jne 0x441167
mov edx, dword [ebp + 8]
lea ecx, [ebp + 8]
test edx, edx
mov dword [esp + 0x40], ecx
je 0x440f05
mov byte [esp + 0x13], 1
test ebp, ebp
je 0x440f12
test ah, 0x40
jne 0x441167
mov edx, dword [esp + 0x24]
mov al, byte [edx + 0x149]
test al, al
je 0x440f2e
push ebp
call fcn.00465b90
test al, al
jne 0x441167
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax]
push ecx
push edi
call fcn.00463ad0
mov edx, dword [ebp + 0x14]
mov ecx, dword [esp + 0x2c]
mov esi, eax
mov eax, dword [esp + 0x44]
sub esi, edi
add ecx, edx
cmp eax, 0x20
mov dword [esp + 0x2c], ecx
jne 0x441078
mov ecx, dword [esp + 0x24]
mov ax, word [ecx + 0x30]
cmp ax, 0x184
jne 0x440fd1
mov al, byte [0x481014]
test al, al
je 0x441078
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x38]
lea ebp, [esi + eax]
sub edx, ecx
shl edi, 4
add edx, ebp
lea eax, [edx + edi + 0x40]
cmp eax, 0x400000
jb 0x440fb5
mov ecx, dword [esp + 0x1c]
push ecx
push ebp
push ebx
call fcn.00440a60
mov dword [esp + 0x38], ebp
add esi, edi
mov dword [esp + 0x1c], 0
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov ebp, edx
mov eax, dword [edx + 0xc]
add ecx, eax
mov dword [esp + 0x1c], ecx
jmp 0x441078
cmp ax, 0x266
je 0x441051
cmp ax, 0x166
je 0x441051
cmp ax, 0x1f0
jne 0x441078
mov al, byte [0x481014]
test al, al
je 0x441078
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov eax, dword [edx]
mov edx, dword [esp + 0x38]
lea ebp, [esi + ecx]
sub eax, edx
shl edi, 4
add eax, ebp
lea ecx, [eax + edi + 0x40]
cmp ecx, 0x2000000
jb 0x441036
mov edx, dword [esp + 0x1c]
push edx
push ebp
push ebx
call fcn.00440a60
mov dword [esp + 0x38], ebp
add esi, edi
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x3c]
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x1c]
add eax, ecx
mov dword [esp + 0x1c], eax
jmp 0x441078
mov al, byte [ecx + 0x145]
test al, al
je 0x441078
lea edx, [esi + edi]
push ebp
mov dword [ebp], edx
call fcn.004408d0
add esi, eax
test eax, eax
je 0x441078
test ebx, ebx
jne 0x441078
mov ecx, dword [esp + 0x34]
mov dword [ecx + 0xc], eax
test esi, esi
je 0x4410f7
mov edx, dword [esp + 0x24]
mov ax, word [edx + 0x30]
cmp ax, 0x184
je 0x4410ae
cmp ax, 0x1c0
je 0x4410ae
cmp ax, 0x266
je 0x4410ae
cmp ax, 0x601
je 0x4410ae
cmp ax, 0x166
je 0x4410ae
cmp ax, 0x1a2
je 0x4410ae
cmp ax, 0x1a6
jne 0x4410d1
test ebx, ebx
je 0x4410e1
mov al, byte [0x496694]
test al, al
je 0x4410d1
mov al, byte [0x481160]
test al, al
je 0x4410d1
mov eax, dword [ebx + 0x1c]
mov ecx, dword [0x480fa4]
cmp eax, ecx
je 0x4410e1
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0x14]
add ecx, esi
add eax, esi
mov dword [ebx + 8], ecx
mov dword [ebx + 0x14], eax
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
add edi, esi
add ecx, esi
add eax, esi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x18]
mov dword [ebp + 0xc], ecx
mov dword [ebp], edi
mov eax, dword [edx]
mov ebx, ebp
add ecx, eax
add edi, eax
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
add ecx, eax
mov al, byte [0x480f94]
test al, al
mov dword [esp + 0x20], edi
mov dword [esp + 0x14], ecx
jne 0x44113c
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax]
and ecx, 0x1e0
cmp ecx, 0x80
je 0x441140
mov dword [esp + 0x28], edi
mov al, byte [0x4690c4]
test al, al
je 0x441167
mov edx, dword [ebp + 0x18]
mov eax, dword [0x481000]
cmp edx, eax
jne 0x441167
mov ecx, dword [0x480ffc]
mov eax, dword [esp + 0x50]
mov dword [ecx + eax*4], ebp
inc eax
mov dword [esp + 0x50], eax
lea edx, [esp + 0x58]
push edx
call fcn.0040f920
test al, al
jne 0x440ed8
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4411de
push 0x500000
push edi
call fcn.00463ad0
mov ebp, dword [esp + 0x1c]
mov esi, eax
sub esi, edi
push ebp
lea eax, [esi + edi]
push eax
push ebx
call fcn.00440a60
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov ecx, dword [ebx + 0x14]
shl ebp, 4
add esi, ebp
mov dword [esp + 0x1c], 0
add eax, esi
add edi, esi
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 8]
add edx, esi
add ecx, esi
add eax, esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x14], edx
mov dword [ebx + 0x14], ecx
mov dword [ebx + 8], eax
mov esi, dword [esp + 0x34]
mov eax, edi
sub eax, dword [esi + 8]
mov dword [esi + 0x14], eax
mov ecx, dword [0x480fa8]
cmp esi, ecx
jne 0x44128a
mov cl, byte [0x4690c4]
test cl, cl
je 0x441211
mov ebp, dword [esp + 0x24]
shr eax, 4
mov dword [ebp + 0x244], eax
jmp 0x441215
mov ebp, dword [esp + 0x24]
mov al, byte [0x481160]
test al, al
je 0x44128e
mov eax, dword [esi + 0x14]
test eax, eax
je 0x44128e
mov ecx, dword [ebp + 0x244]
mov eax, 0xcccccccd
mul ecx
mov eax, edx
shr eax, 3
add eax, 0x19
cmp eax, 0xfff
jbe 0x441246
mov eax, 0xfff
lea edx, [eax + ecx]
mov dword [ebp + 0x244], edx
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 0x14]
shl eax, 4
add ecx, eax
add edx, eax
mov dword [ebx + 8], ecx
mov ecx, dword [esp + 0x18]
add ecx, eax
mov dword [ebx + 0x14], edx
mov edx, dword [esi + 0x14]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
add edx, eax
add edi, eax
add ecx, eax
mov dword [esi + 0x14], edx
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x14], ecx
jmp 0x44128e
mov ebp, dword [esp + 0x24]
mov al, byte [0x496694]
test al, al
je 0x441328
mov al, byte [0x481160]
test al, al
je 0x441569
cmp esi, dword [0x480fa4]
jne 0x441328
mov eax, 0xcccccccd
mul dword [esi + 0x14]
mov ecx, edx
shr ecx, 4
mov dword [ebp + 0x258], ecx
mov eax, dword [esi + 0x14]
test eax, eax
je 0x441328
mov eax, 0xcccccccd
mul ecx
shr edx, 3
add edx, 0x19
cmp edx, 0xccc
jbe 0x4412e4
mov edx, 0xccc
add ecx, edx
lea eax, [edx + edx*4]
mov dword [ebp + 0x258], ecx
mov ebp, dword [ebx + 0x14]
mov edx, dword [ebx + 8]
shl eax, 2
add ebp, eax
add edx, eax
mov dword [ebx + 0x14], ebp
mov ebp, dword [esp + 0x18]
mov dword [ebx + 8], edx
mov ecx, dword [esi + 0x14]
add ecx, eax
add ebp, eax
mov dword [esi + 0x14], ecx
mov ecx, dword [esp + 0x14]
add edi, eax
add ecx, eax
mov dword [esp + 0x18], ebp
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x14], ecx
mov al, byte [0x481160]
test al, al
je 0x441569
mov edx, dword [esi + 0x14]
test edx, edx
je 0x441569
mov eax, dword [esp + 0x30]
mov ecx, dword [0x480fec]
cmp eax, ecx
je 0x441569
mov cl, byte [0x496694]
test cl, cl
je 0x44136b
mov ecx, dword [0x480fa4]
xor eax, eax
cmp esi, ecx
setne al
jmp 0x44137a
mov esi, dword [0x480fe8]
xor ecx, ecx
cmp eax, esi
setne cl
mov eax, ecx
test eax, eax
je 0x441569
mov eax, dword [esp + 0x34]
mov esi, 0x401a44
mov ebp, dword [eax]
mov dword [esp + 0x4c], ebp
mov cl, byte [ebp]
mov al, cl
cmp cl, byte [esi]
jne 0x4413b6
test al, al
je 0x4413b2
mov cl, byte [ebp + 1]
mov al, cl
cmp cl, byte [esi + 1]
jne 0x4413b6
add ebp, 2
add esi, 2
test al, al
jne 0x441391
xor eax, eax
jmp 0x4413bb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x441569
mov esi, dword [esp + 0x4c]
mov ebp, 0x401f6c
mov cl, byte [esi]
mov al, cl
cmp cl, byte [ebp]
jne 0x4413f1
test al, al
je 0x4413ed
mov cl, byte [esi + 1]
mov al, cl
cmp cl, byte [ebp + 1]
jne 0x4413f1
add esi, 2
add ebp, 2
test al, al
jne 0x4413cc
xor eax, eax
jmp 0x4413f6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x441569
mov eax, dword [esp + 0x30]
mov ebp, 0x406ff0
mov esi, dword [eax]
mov cl, byte [esi]
mov al, cl
cmp cl, byte [ebp]
jne 0x44142e
test al, al
je 0x44142a
mov cl, byte [esi + 1]
mov al, cl
cmp cl, byte [ebp + 1]
jne 0x44142e
add esi, 2
add ebp, 2
test al, al
jne 0x441409
xor eax, eax
jmp 0x441433
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x441569
cmp dword [esp + 0x44], 0x20
jne 0x441469
mov ecx, dword [esp + 0x2c]
lea eax, [edx + edx*4]
lea edx, [eax + eax*4]
lea eax, [ecx + ecx*4]
lea eax, [eax + eax*4]
sub edx, eax
mov eax, 0x51eb851f
mul edx
shr edx, 5
add edx, 0x1000
jmp 0x441525
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x54]
cmp ecx, eax
je 0x441503
mov al, byte [0x496694]
test al, al
je 0x4414df
mov ebp, dword [0x401ef0]
mov esi, dword [esp + 0x4c]
mov cl, byte [esi]
mov al, cl
cmp cl, byte [ebp]
jne 0x4414b1
test al, al
je 0x4414ad
mov cl, byte [esi + 1]
mov al, cl
cmp cl, byte [ebp + 1]
jne 0x4414b1
add esi, 2
add ebp, 2
test al, al
jne 0x44148c
xor eax, eax
jmp 0x4414b6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4414df
mov eax, dword [0x4966a0]
mov ecx, dword [0x480f3c]
mov esi, dword [eax + 8]
mov ebp, dword [ecx + 8]
mov eax, dword [eax + 0x14]
add esi, ebp
mov ebp, dword [ecx + 0x14]
mov ecx, dword [esp + 0x2c]
add eax, ebp
sub edx, esi
sub ecx, eax
jmp 0x4414e3
mov ecx, dword [esp + 0x2c]
lea edx, [edx + edx*4]
lea eax, [ecx + ecx*4]
shl edx, 2
shl eax, 2
sub edx, eax
mov eax, 0x51eb851f
mul edx
shr edx, 5
add edx, 0x100
jmp 0x441525
lea ecx, [edx + edx*4]
shl ecx, 1
mov edx, ecx
mov ecx, dword [esp + 0x2c]
lea eax, [ecx + ecx*4]
shl eax, 1
sub edx, eax
mov eax, 0x51eb851f
mul edx
shr edx, 5
add edx, 0x200
cmp edx, ecx
jbe 0x44152d
sub edx, ecx
jmp 0x44152f
xor edx, edx
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0x14]
add eax, edx
mov esi, dword [esp + 0x18]
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x34]
add ecx, edx
add esi, edx
mov dword [ebx + 0x14], ecx
mov ebp, dword [eax + 0x14]
add ebp, edx
add edi, edx
mov dword [eax + 0x14], ebp
mov eax, dword [esp + 0x14]
add eax, edx
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x68]
push ecx
call fcn.0040f840
test al, al
jne 0x440db0
mov esi, dword [esp + 0x24]
mov al, byte [0x496694]
mov ebp, dword [esp + 0x30]
test al, al
jne 0x441633
cmp ebp, dword [0x480fe8]
jne 0x441633
mov edx, dword [esp + 0x14]
mov ecx, dword [esi + 0x264]
push edx
call fcn.0045a490
mov al, byte [0x481160]
test al, al
je 0x441633
mov eax, dword [esp + 0x14]
test eax, eax
je 0x44163b
mov eax, dword [esi + 0x264]
mov ecx, dword [eax + 0x34]
mov eax, 0xcccccccd
mul dword [esp + 0x14]
lea ebp, [ecx + ecx*4]
shr edx, 3
lea ebp, [ebp + ebp*4]
add ebp, edx
cmp ebp, 0xffff
jbe 0x4415e8
mov ebp, 0xffff
mov eax, ebp
xor edx, edx
div ecx
mov ebp, eax
mov eax, dword [esp + 0x14]
imul ebp, ecx
mov ecx, dword [esi + 0x264]
add eax, ebp
push eax
mov dword [esp + 0x50], eax
call fcn.0045a490
mov edx, dword [ebx + 0x14]
mov eax, dword [ebx + 8]
mov ecx, ebp
add eax, ebp
and ecx, 0xffff
mov dword [ebx + 8], eax
add edx, ecx
add ebp, edi
mov dword [ebx + 0x14], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x441647
mov al, byte [esp + 0x13]
test al, al
je 0x441647
dec word [esi + 0x32]
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x90]
mov ecx, dword [eax]
mov dword [ebp + 4], ecx
mov ecx, dword [edx]
mov edx, dword [ebp + 0xc]
mov dword [ebp + 0x18], ecx
test edx, edx
jne 0x441672
mov eax, dword [esp + 0x14]
test eax, eax
je 0x441745
mov eax, dword [esp + 0x28]
mov edi, dword [ebp + 4]
sub eax, edi
mov ebx, eax
lea eax, [ebx + ecx]
mov ecx, dword [esp + 0x14]
add ecx, edx
mov dword [ebp + 8], eax
mov dword [ebp + 0x10], ecx
mov eax, dword [esi + 0x1e8]
cmp ebx, ecx
setne byte [esp + 0x13]
cmp eax, 1
je 0x4416a3
mov edi, dword [esi + 0x68]
jmp 0x4416b7
mov al, byte [ebp + 0x31]
test al, al
je 0x4416b4
dec ecx
shr ecx, 0xc
inc ecx
shl ecx, 0xc
jmp 0x4416c4
mov edi, dword [esi + 0x64]
lea eax, [ecx - 1]
xor edx, edx
div edi
mov ecx, eax
inc ecx
imul ecx, edi
mov eax, dword [esp + 0x44]
mov dword [ebp + 0xc], ecx
sub eax, 0x20
je 0x4416f6
sub eax, 0x20
je 0x4416e9
sub eax, 0x40
jne 0x4416f9
mov eax, dword [esi + 0x50]
add eax, ecx
xor ecx, ecx
mov dword [esi + 0x50], eax
mov dword [ebp + 0x18], ecx
jmp 0x4416f9
cmp ebp, dword [0x480fec]
je 0x44171b
add dword [esi + 0x4c], ecx
jmp 0x4416f9
add dword [esi + 0x48], ecx
cmp ebp, dword [0x480fec]
je 0x44171b
mov eax, dword [ebp + 0xc]
mov edi, dword [esi + 0x64]
dec eax
xor edx, edx
div edi
mov edx, eax
mov eax, dword [esp + 0x8c]
inc edx
imul edx, edi
add dword [eax], edx
mov al, byte [esp + 0x13]
test al, al
je 0x441736
mov ecx, dword [esi + 0x68]
lea eax, [ebx - 1]
xor edx, edx
div ecx
inc eax
imul eax, ecx
mov dword [ebp + 0x14], eax
jmp 0x441739
mov dword [ebp + 0x14], ecx
mov eax, dword [esp + 0x90]
mov ecx, dword [ebp + 0x14]
add dword [eax], ecx
lea edx, [esp + 0x78]
push edx
call fcn.0040f720
test al, al
jne 0x440ba1
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x78
ret 8