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

Disassembly:
sub esp, 0x44
push ebx
push ebp
push esi
push edi
lea eax, [esp + 0x34]
push eax
mov eax, dword [esp + 0x5c]
lea edx, [esp + 0x40]
push edx
push eax
mov dword [esp + 0x34], ecx
call fcn.00447930
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x68]
add eax, 8
add ecx, 0xc
mov dword [esp + 0x58], 0
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], ecx
mov ebp, dword [esp + 0x78]
test ebp, ebp
je 0x447aad
mov edi, dword [esp + 0x1c]
add edi, 0xfffffff4
mov ecx, 0x23
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
cmp dword [ebx + 0x30], 0
je 0x447b06
mov ecx, dword [esp + 0x28]
push 1
lea edx, [esp + 0x48]
push edx
call fcn.00475c60
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
sub eax, dword [esp + 0x48]
sub ecx, dword [esp + 0x44]
cmp ecx, eax
mov eax, dword [esp + 0x58]
mov edx, dword [esp + eax*4 + 0x3c]
jle 0x447af8
cmp edx, dword [esp + eax*4 + 0x34]
jl 0x447afe
mov dword [ebx + 0x28], 0
test ebp, ebp
je 0x447b0a
mov edx, dword [ebx + 0x28]
mov dword [ebp + 0x28], edx
jmp 0x447b0a
cmp edx, dword [esp + eax*4 + 0x34]
jle 0x447ae5
mov ecx, dword [ebx + 0x34]
mov dword [ebx + 0x28], ecx
jmp 0x447aec
mov eax, dword [esp + 0x58]
mov ecx, dword [ebx + 0x28]
cmp ecx, 1
je 0x447b2a
cmp ecx, 3
je 0x447b2a
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + eax*4 + 0x3c]
lea ecx, [ecx + eax*4]
mov dword [ecx], edx
mov edx, dword [esp + eax*4 + 0x34]
jmp 0x447b3b
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + eax*4 + 0x34]
lea ecx, [ecx + eax*4]
mov dword [ecx], edx
mov edx, dword [esp + eax*4 + 0x3c]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x70]
lea ecx, [ecx + eax*4]
mov dword [ecx], edx
cmp dword [ebx], 0
mov dword [esp + 0x18], ecx
je 0x447dee
cmp dword [esp + 0x5c], 2
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
mov ebp, dword [ebx + 8]
mov edi, dword [ebx + 0x1c]
mov esi, dword [ebx + 0x18]
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], edx
jne 0x447c93
mov eax, dword [ebx + 0x28]
test eax, eax
je 0x447c6d
cmp dword [ebx + 0x2c], 0
je 0x447c6d
mov edx, 1
cmp eax, edx
jne 0x447bd7
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x447bcd
cmp dword [esp + 0x58], eax
je 0x447bf5
mov eax, edi
cdq
mov ecx, eax
mov eax, dword [esp + 0x14]
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jle 0x447c3e
mov dword [esp + 0x14], edi
xor esi, esi
xor edi, edi
jmp 0x447c93
cmp eax, edx
jne 0x447baa
cmp dword [esp + 0x58], edx
jmp 0x447bf3
cmp eax, 3
jne 0x447c15
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x447bea
cmp dword [esp + 0x58], edx
jmp 0x447ba8
cmp eax, edx
jne 0x447baa
cmp dword [esp + 0x58], 0
jne 0x447baa
mov eax, edi
cdq
mov ecx, eax
mov eax, dword [esp + 0x10]
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jle 0x447baa
mov dword [esp + 0x10], edi
xor esi, esi
xor edi, edi
jmp 0x447c93
cmp eax, 2
jne 0x447c3e
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x447c44
cmp dword [esp + 0x58], edx
je 0x447c4f
mov eax, esi
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov eax, ebp
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jle 0x447c3e
mov ebp, esi
xor esi, esi
xor edi, edi
jmp 0x447c93
cmp eax, edx
jne 0x447c28
cmp dword [esp + 0x58], 0
jne 0x447c28
mov eax, esi
cdq
mov edi, eax
xor edi, edx
sub edi, edx
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp edi, eax
jle 0x447c28
mov dword [esp + 0x20], esi
xor esi, esi
xor edi, edi
jmp 0x447c93
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x447ce6
cmp dword [esp + 0x58], eax
je 0x447cf1
mov eax, esi
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov eax, ebp
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jle 0x447c93
mov ebp, esi
xor esi, esi
cmp dword [esp + 0x78], 0
mov ecx, dword [esp + 0x1c]
je 0x447cbb
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov dword [ecx], edx
mov edx, dword [esp + 0x10]
mov dword [ecx - 4], ebp
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
mov dword [ecx + 0x10], edi
mov dword [ecx + 0xc], esi
cmp dword [ebx + 4], 0
jne 0x447d18
mov eax, dword [esp + 0x20]
lea edx, [esi + eax]
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x10]
add edx, ebp
sub dword [esi], edx
lea edx, [edi + eax]
add edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
sub dword [edi], edx
jmp 0x447dd6
cmp eax, 1
jne 0x447c7b
cmp dword [esp + 0x58], eax
jne 0x447c7b
mov eax, esi
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x30], eax
mov eax, ecx
mov ecx, dword [esp + 0x30]
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jle 0x447c7b
mov dword [esp + 0x20], esi
jmp 0x447c91
mov eax, dword [esp + 0x68]
mov ecx, dword [eax]
mov edx, ecx
imul edx, esi
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov esi, eax
mov edx, ecx
imul edx, dword [esp + 0x20]
mov eax, 0xae147ae1
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub eax, esi
mov esi, eax
mov edx, ecx
imul edx, ebp
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
add esi, ecx
mov ecx, dword [esp + 0x68]
mov dword [ecx], esi
mov esi, dword [esp + 0x18]
mov ecx, dword [esi]
mov edx, ecx
imul edx, edi
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edi, eax
mov edx, ecx
imul edx, dword [esp + 0x10]
mov eax, 0xae147ae1
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, ecx
imul edx, dword [esp + 0x14]
mov ebp, eax
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
sub ebp, edi
mov edi, dword [esp + 0x18]
add eax, edx
sub ebp, eax
add ebp, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esi], ebp
mov esi, dword [esp + 0x68]
cmp dword [esi], 0
jg 0x447de1
mov dword [esi], 0
cmp dword [edi], 0
jg 0x447dfa
mov dword [edi], 0
jmp 0x447dfa
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
cmp dword [ebx + 0x74], 0
je 0x447e94
mov eax, dword [ebx + 0x84]
test eax, eax
jne 0x447e56
mov ecx, dword [ebx + 0x78]
mov esi, dword [esp + 0x68]
imul ecx, dword [esi]
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [esi], ecx
mov esi, dword [esp + 0x18]
mov ecx, dword [esi]
imul ecx, dword [ebx + 0x78]
mov edi, dword [esp + 0x18]
mov eax, 0x51eb851f
imul ecx
mov ecx, dword [esp + 0x1c]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi], eax
mov esi, dword [esp + 0x68]
jmp 0x447e94
cmp eax, 1
jne 0x447e62
mov edx, dword [ebx + 0x7c]
mov dword [esi], edx
jmp 0x447e8c
cmp eax, 2
jne 0x447e79
mov eax, dword [edi]
imul eax, dword [ebx + 0x7c]
cdq
idiv dword [esi]
mov dword [edi], eax
mov edx, dword [ebx + 0x7c]
mov dword [esi], edx
jmp 0x447e94
cmp eax, 3
jne 0x447e94
mov eax, dword [ebx + 0x80]
imul eax, dword [esi]
cdq
idiv dword [edi]
mov dword [esi], eax
mov eax, dword [ebx + 0x80]
mov dword [edi], eax
mov eax, dword [esp + 0x24]
xor edx, edx
mov dword [eax - 8], edx
mov dword [eax - 4], edx
mov edx, dword [esi]
mov dword [eax], edx
mov edx, dword [edi]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x58]
add edx, 1
add ecx, 0x8c
add eax, 0x10
cmp edx, 2
mov dword [esp + 0x58], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
jl 0x447a95
mov edi, dword [esp + 0x64]
test edi, edi
je 0x447fc7
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x180]
cmp eax, 2
jne 0x447f74
mov esi, dword [esp + 0x6c]
mov eax, dword [esi]
add eax, 1
cdq
sub eax, edx
mov edx, dword [0x4a05d0]
mov ecx, eax
sar ecx, 1
imul edx, ecx
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add ecx, eax
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x447f4a
cmp edi, 1
je 0x447f54
mov edx, dword [esp + 0x2c]
mov eax, dword [edx]
sub eax, ecx
mov ecx, dword [esp + 0x74]
mov dword [ecx], eax
jns 0x447fc7
pop edi
pop esi
pop ebp
mov dword [ecx], 0
pop ebx
add esp, 0x44
ret 0x24
cmp eax, 1
jne 0x447f26
cmp edi, 2
jne 0x447f26
mov edx, dword [esp + 0x74]
mov eax, dword [edx]
mov edx, dword [esp + 0x2c]
add ecx, eax
mov dword [edx], ecx
mov eax, dword [esi]
cmp ecx, eax
jle 0x447fc7
pop edi
pop esi
pop ebp
mov dword [edx], eax
pop ebx
add esp, 0x44
ret 0x24
cmp eax, 3
jne 0x447fc7
mov esi, dword [esp + 0x70]
mov eax, dword [esi]
add eax, 1
cdq
sub eax, edx
mov edx, dword [0x4a05c8]
mov ecx, eax
sar ecx, 1
imul edx, ecx
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add ecx, eax
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x447fd1
cmp edi, 1
je 0x447fdb
mov edx, dword [esp + 0x74]
mov eax, dword [edx + 0xc]
sub eax, ecx
mov dword [edx + 4], eax
jns 0x447fc7
mov dword [edx + 4], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 0x24
cmp eax, 1
jne 0x447fb2
cmp edi, 2
jne 0x447fb2
mov edx, dword [esp + 0x74]
mov eax, dword [edx + 4]
add ecx, eax
mov dword [edx + 0xc], ecx
mov eax, dword [esi]
cmp ecx, eax
jle 0x447fc7
pop edi
pop esi
pop ebp
mov dword [edx + 0xc], eax
pop ebx
add esp, 0x44
ret 0x24