Function at 0x440d60
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 0x440d97
mov eax, dword [0x481000]
mov ecx, dword [eax + 0x1c]
shl ecx, 2
push ecx
call fcn.00451b40
mov dword [0x480ffc], eax
mov edx, dword [esp + 0x80]
mov ecx, dword [0x401e80]
push ecx
mov eax, dword [edx]
mov edx, dword [0x480fc0]
push edx
mov dword [esp + 0x34], eax
call fcn.0040e3c0
mov dword [esp + 0x48], eax
lea eax, [esi + 0x1c0]
lea ecx, [esp + 0x6c]
push eax
push ecx
call fcn.0040f950
lea edx, [esp + 0x6c]
push edx
call fcn.0040f890
test al, al
je 0x44199a
push ebx
push ebp
push edi
mov ebp, dword [esi + 0x1f0]
mov ecx, dword [esp + 0x84]
cmp ebp, 1
mov byte [esp + 0x13], 0
mov dword [esp + 0x30], ecx
jne 0x440e60
cmp ecx, dword [0x480fec]
jne 0x440e60
mov al, byte [0x4690c4]
test al, al
je 0x441985
mov eax, dword [0x480fa8]
lea ecx, [esp + 0x58]
push eax
push ecx
call fcn.0040fa60
lea edx, [esp + 0x58]
push edx
call fcn.0040fa90
test al, al
je 0x441985
mov eax, dword [esp + 0x64]
mov ebx, dword [esi + 0x24c]
lea edx, [esp + 0x58]
mov ecx, dword [eax + 8]
push edx
shl ecx, 1
shr ecx, 4
add ebx, ecx
mov dword [esi + 0x24c], ebx
call fcn.0040fa90
test al, al
jne 0x440e33
jmp 0x441985
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 0x440e9b
cmp eax, 0x20
je 0x440e9b
mov byte [esp + 0x12], 1
mov dword [esi + 0x5c], edi
mov eax, dword [0x480ff8]
mov dword [esp + 0x28], edi
cmp eax, ecx
jne 0x440fc5
test ebp, ebp
jne 0x440fc5
mov cl, byte [0x496694]
test cl, cl
jne 0x440fc5
mov cl, byte [esi + 0x132]
test cl, cl
jne 0x440fc5
mov cl, byte [esi + 0x147]
test cl, cl
jne 0x440fc5
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 0x440f0a
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 0x440f40
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 0x440fa8
mov al, byte [0x496694]
test al, al
jne 0x440fa8
mov al, byte [0x480ed5]
test al, al
jne 0x440fa8
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 0x440f81
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 + 0x270]
push edx
push eax
call fcn.0043b6b0
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.0040f980
lea ecx, [esp + 0x68]
push ecx
call fcn.0040f9b0
test al, al
je 0x4417bf
mov eax, dword [esp + 0x74]
mov cl, byte [0x4690c4]
mov esi, eax
test cl, cl
mov dword [esp + 0x34], esi
je 0x44109a
mov edx, dword [esp + 0x30]
mov ecx, dword [0x480fec]
cmp edx, ecx
jne 0x44103a
cmp eax, dword [0x480fb4]
je 0x4417a9
cmp eax, dword [0x480fb0]
je 0x4417a9
cmp eax, dword [0x480fb8]
je 0x4417a9
cmp eax, dword [0x480fa8]
jne 0x44109a
mov cl, byte [0x496694]
test cl, cl
jne 0x44109a
push eax
lea eax, [esp + 0x5c]
push eax
call fcn.0040fa60
lea ecx, [esp + 0x58]
push ecx
call fcn.0040fa90
test al, al
je 0x4417a9
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x64]
mov ebp, dword [esi + 0x24c]
lea ecx, [esp + 0x58]
mov eax, dword [edx + 8]
push ecx
shl eax, 1
shr eax, 4
add ebp, eax
mov dword [esi + 0x24c], ebp
call fcn.0040fa90
test al, al
jne 0x44106d
jmp 0x4417a9
xor ecx, ecx
mov cl, byte [eax + 0x18]
lea eax, [ecx - 1]
not eax
and eax, edi
cmp eax, edi
je 0x4410ac
add eax, ecx
sub eax, edi
je 0x4410e9
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.0040fa60
lea ecx, [esp + 0x58]
push ecx
call fcn.0040fa90
test al, al
je 0x4413b9
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 0x4413a7
mov edx, dword [ebp + 8]
lea ecx, [ebp + 8]
test edx, edx
mov dword [esp + 0x40], ecx
je 0x441145
mov byte [esp + 0x13], 1
test ebp, ebp
je 0x441152
test ah, 0x40
jne 0x4413a7
mov edx, dword [esp + 0x24]
mov al, byte [edx + 0x149]
test al, al
je 0x44116e
push ebp
call fcn.00465fe0
test al, al
jne 0x4413a7
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax]
push ecx
push edi
call fcn.00463f20
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 0x4412b8
mov ecx, dword [esp + 0x24]
mov ax, word [ecx + 0x30]
cmp ax, 0x184
jne 0x441211
mov al, byte [0x481014]
test al, al
je 0x4412b8
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 0x4411f5
mov ecx, dword [esp + 0x1c]
push ecx
push ebp
push ebx
call fcn.00440ca0
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 0x4412b8
cmp ax, 0x266
je 0x441291
cmp ax, 0x166
je 0x441291
cmp ax, 0x1f0
jne 0x4412b8
mov al, byte [0x481014]
test al, al
je 0x4412b8
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 0x441276
mov edx, dword [esp + 0x1c]
push edx
push ebp
push ebx
call fcn.00440ca0
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 0x4412b8
mov al, byte [ecx + 0x145]
test al, al
je 0x4412b8
lea edx, [esi + edi]
push ebp
mov dword [ebp], edx
call fcn.00440b10
add esi, eax
test eax, eax
je 0x4412b8
test ebx, ebx
jne 0x4412b8
mov ecx, dword [esp + 0x34]
mov dword [ecx + 0xc], eax
test esi, esi
je 0x441337
mov edx, dword [esp + 0x24]
mov ax, word [edx + 0x30]
cmp ax, 0x184
je 0x4412ee
cmp ax, 0x1c0
je 0x4412ee
cmp ax, 0x266
je 0x4412ee
cmp ax, 0x601
je 0x4412ee
cmp ax, 0x166
je 0x4412ee
cmp ax, 0x1a2
je 0x4412ee
cmp ax, 0x1a6
jne 0x441311
test ebx, ebx
je 0x441321
mov al, byte [0x496694]
test al, al
je 0x441311
mov al, byte [0x481160]
test al, al
je 0x441311
mov eax, dword [ebx + 0x1c]
mov ecx, dword [0x480fa4]
cmp eax, ecx
je 0x441321
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 0x44137c
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax]
and ecx, 0x1e0
cmp ecx, 0x80
je 0x441380
mov dword [esp + 0x28], edi
mov al, byte [0x4690c4]
test al, al
je 0x4413a7
mov edx, dword [ebp + 0x18]
mov eax, dword [0x481000]
cmp edx, eax
jne 0x4413a7
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.0040fa90
test al, al
jne 0x441118
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x44141e
push 0x500000
push edi
call fcn.00463f20
mov ebp, dword [esp + 0x1c]
mov esi, eax
sub esi, edi
push ebp
lea eax, [esi + edi]
push eax
push ebx
call fcn.00440ca0
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 0x4414ca
mov cl, byte [0x4690c4]
test cl, cl
je 0x441451
mov ebp, dword [esp + 0x24]
shr eax, 4
mov dword [ebp + 0x24c], eax
jmp 0x441455
mov ebp, dword [esp + 0x24]
mov al, byte [0x481160]
test al, al
je 0x4414ce
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4414ce
mov ecx, dword [ebp + 0x24c]
mov eax, 0xcccccccd
mul ecx
mov eax, edx
shr eax, 3
add eax, 0x19
cmp eax, 0xfff
jbe 0x441486
mov eax, 0xfff
lea edx, [eax + ecx]
mov dword [ebp + 0x24c], 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 0x4414ce
mov ebp, dword [esp + 0x24]
mov al, byte [0x496694]
test al, al
je 0x441568
mov al, byte [0x481160]
test al, al
je 0x4417a9
cmp esi, dword [0x480fa4]
jne 0x441568
mov eax, 0xcccccccd
mul dword [esi + 0x14]
mov ecx, edx
shr ecx, 4
mov dword [ebp + 0x260], ecx
mov eax, dword [esi + 0x14]
test eax, eax
je 0x441568
mov eax, 0xcccccccd
mul ecx
shr edx, 3
add edx, 0x19
cmp edx, 0xccc
jbe 0x441524
mov edx, 0xccc
add ecx, edx
lea eax, [edx + edx*4]
mov dword [ebp + 0x260], 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 0x4417a9
mov edx, dword [esi + 0x14]
test edx, edx
je 0x4417a9
mov eax, dword [esp + 0x30]
mov ecx, dword [0x480fec]
cmp eax, ecx
je 0x4417a9
mov cl, byte [0x496694]
test cl, cl
je 0x4415ab
mov ecx, dword [0x480fa4]
xor eax, eax
cmp esi, ecx
setne al
jmp 0x4415ba
mov esi, dword [0x480fe8]
xor ecx, ecx
cmp eax, esi
setne cl
mov eax, ecx
test eax, eax
je 0x4417a9
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 0x4415f6
test al, al
je 0x4415f2
mov cl, byte [ebp + 1]
mov al, cl
cmp cl, byte [esi + 1]
jne 0x4415f6
add ebp, 2
add esi, 2
test al, al
jne 0x4415d1
xor eax, eax
jmp 0x4415fb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4417a9
mov esi, dword [esp + 0x4c]
mov ebp, 0x401f74
mov cl, byte [esi]
mov al, cl
cmp cl, byte [ebp]
jne 0x441631
test al, al
je 0x44162d
mov cl, byte [esi + 1]
mov al, cl
cmp cl, byte [ebp + 1]
jne 0x441631
add esi, 2
add ebp, 2
test al, al
jne 0x44160c
xor eax, eax
jmp 0x441636
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4417a9
mov eax, dword [esp + 0x30]
mov ebp, 0x407028
mov esi, dword [eax]
mov cl, byte [esi]
mov al, cl
cmp cl, byte [ebp]
jne 0x44166e
test al, al
je 0x44166a
mov cl, byte [esi + 1]
mov al, cl
cmp cl, byte [ebp + 1]
jne 0x44166e
add esi, 2
add ebp, 2
test al, al
jne 0x441649
xor eax, eax
jmp 0x441673
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4417a9
cmp dword [esp + 0x44], 0x20
jne 0x4416a9
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 0x441765
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x54]
cmp ecx, eax
je 0x441743
mov al, byte [0x496694]
test al, al
je 0x44171f
mov ebp, dword [0x401ef8]
mov esi, dword [esp + 0x4c]
mov cl, byte [esi]
mov al, cl
cmp cl, byte [ebp]
jne 0x4416f1
test al, al
je 0x4416ed
mov cl, byte [esi + 1]
mov al, cl
cmp cl, byte [ebp + 1]
jne 0x4416f1
add esi, 2
add ebp, 2
test al, al
jne 0x4416cc
xor eax, eax
jmp 0x4416f6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x44171f
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 0x441723
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 0x441765
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 0x44176d
sub edx, ecx
jmp 0x44176f
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.0040f9b0
test al, al
jne 0x440ff0
mov esi, dword [esp + 0x24]
mov al, byte [0x496694]
mov ebp, dword [esp + 0x30]
test al, al
jne 0x441873
cmp ebp, dword [0x480fe8]
jne 0x441873
mov edx, dword [esp + 0x14]
mov ecx, dword [esi + 0x26c]
push edx
call fcn.0045a8e0
mov al, byte [0x481160]
test al, al
je 0x441873
mov eax, dword [esp + 0x14]
test eax, eax
je 0x44187b
mov eax, dword [esi + 0x26c]
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 0x441828
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 + 0x26c]
add eax, ebp
push eax
mov dword [esp + 0x50], eax
call fcn.0045a8e0
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 0x441887
mov al, byte [esp + 0x13]
test al, al
je 0x441887
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 0x4418b2
mov eax, dword [esp + 0x14]
test eax, eax
je 0x441985
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 + 0x1f0]
cmp ebx, ecx
setne byte [esp + 0x13]
cmp eax, 1
je 0x4418e3
mov edi, dword [esi + 0x68]
jmp 0x4418f7
mov al, byte [ebp + 0x31]
test al, al
je 0x4418f4
dec ecx
shr ecx, 0xc
inc ecx
shl ecx, 0xc
jmp 0x441904
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 0x441936
sub eax, 0x20
je 0x441929
sub eax, 0x40
jne 0x441939
mov eax, dword [esi + 0x50]
add eax, ecx
xor ecx, ecx
mov dword [esi + 0x50], eax
mov dword [ebp + 0x18], ecx
jmp 0x441939
cmp ebp, dword [0x480fec]
je 0x44195b
add dword [esi + 0x4c], ecx
jmp 0x441939
add dword [esi + 0x48], ecx
cmp ebp, dword [0x480fec]
je 0x44195b
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 0x441976
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 0x441979
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.0040f890
test al, al
jne 0x440de1
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x78
ret 8