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

Disassembly:
sub esp, 0x170
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x180]
push ebp
push esi
mov esi, dword [esp + 0x180]
mov eax, dword [ecx + 0x510]
mov ebp, dword [ecx + 0x504]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x40]
push edi
xor edi, edi
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x34], eax
mov eax, dword [eax + 0xb20]
mov dword [esp + 0x30], eax
test edx, edx
je 0x448330
push ebx
mov ebx, edi
test ebp, ebp
jle 0x447ee5
mov edi, dword [esp + 0x10]
mov esi, dword [edx + ebx*4]
mov eax, esi
mov ecx, dword [edi + 0x340]
and eax, 0x7fff
dec ecx
je 0x447ec9
dec ecx
je 0x447ec4
dec ecx
je 0x447eb5
dec ecx
jne 0x447ecc
sar eax, 4
jmp 0x447ecc
push 0xc
cdq
pop ecx
idiv ecx
mov edx, dword [esp + 0x190]
jmp 0x447ecc
sar eax, 3
jmp 0x447ecc
sar eax, 2
and esi, 0x8000
or esi, eax
mov dword [edx + ebx*4], esi
inc ebx
cmp ebx, ebp
jl 0x447e94
mov ecx, dword [esp + 0x18c]
xor edi, edi
mov esi, dword [edx]
mov ebx, dword [edx + 4]
push 2
pop eax
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], ebx
mov dword [esp + 0x2c], eax
cmp ebp, eax
jle 0x448011
mov eax, dword [esp + 0x10]
lea esi, [edx + 8]
mov ebx, dword [esp + 0x18c]
add eax, 0x34c
mov dword [esp + 0x14], eax
add ecx, 0x30c
lea eax, [esp + 0x7c]
mov dword [esp + 0x24], ecx
sub eax, edx
mov dword [esp + 0x1c], eax
lea eax, [ebp - 2]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
mov ebp, dword [ecx + 0xfc]
mov ecx, dword [ecx]
push dword [eax]
mov eax, ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x2c], ecx
push dword [edx + ecx*4]
push dword [edx + eax*4]
mov edx, dword [esp + 0x1c]
push dword [edx + ecx*4 + 0x344]
push dword [edx + eax*4 + 0x344]
call fcn.00448ca9
mov ecx, dword [esi]
mov edx, 0x8000
mov ebp, dword [esp + 0x30]
add esp, 0x14
test edx, ecx
jne 0x447fd5
cmp eax, ecx
je 0x447fd5
mov edx, dword [ebx + 0x50c]
sub edx, eax
cmp edx, eax
jl 0x447f8f
mov edx, eax
sub ecx, eax
jns 0x447fac
mov eax, edx
neg eax
cmp ecx, eax
jge 0x447fa2
sub edx, ecx
lea ecx, [edx - 1]
jmp 0x447fb6
lea eax, [ecx + ecx]
or ecx, 0xffffffff
sub ecx, eax
jmp 0x447fb6
cmp ecx, edx
jl 0x447fb4
add ecx, edx
jmp 0x447fb6
add ecx, ecx
mov edx, dword [esp + 0x190]
mov eax, dword [esp + 0x20]
mov dword [esi + ebp], ecx
mov ecx, 0x7fff
and dword [edx + eax*4], ecx
mov eax, dword [esp + 0x28]
and dword [edx + eax*4], ecx
jmp 0x447fe3
or eax, edx
mov dword [esi + ebp], edi
mov edx, dword [esp + 0x190]
mov dword [esi], eax
mov ecx, dword [esp + 0x24]
add esi, 4
mov eax, dword [esp + 0x14]
add ecx, 4
add eax, 4
mov dword [esp + 0x24], ecx
dec dword [esp + 0x18]
mov dword [esp + 0x14], eax
jne 0x447f3a
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x7c]
push 1
push 1
push dword [esp + 0x18c]
call fcn.0044c900
mov ebp, dword [esp + 0x198]
mov eax, dword [ebp + 0x50c]
inc dword [ebp + 0x51c]
dec eax
push eax
call fcn.0043e80f
add eax, eax
add dword [ebp + 0x518], eax
mov eax, dword [ebp + 0x50c]
dec eax
push eax
call fcn.0043e80f
push eax
push esi
push dword [esp + 0x1a0]
call fcn.0044c900
mov eax, dword [ebp + 0x50c]
dec eax
push eax
call fcn.0043e80f
push eax
push ebx
push dword [esp + 0x1b0]
call fcn.0044c900
mov edx, dword [esp + 0x40]
add esp, 0x30
mov dword [esp + 0x28], edi
cmp dword [edx], edi
jle 0x448267
lea eax, [edx + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [eax]
xor esi, esi
inc esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
mov ecx, dword [edx + eax*4 + 0xc0]
mov ebx, dword [edx + eax*4 + 0x80]
shl esi, cl
mov dword [esp + 0x14], ebx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
test ecx, ecx
je 0x4481df
mov dword [esp + 0x3c], edi
mov edx, edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
test esi, esi
jle 0x448145
mov ebp, dword [esp + 0x38]
lea ecx, [eax + 0xa]
shl ecx, 5
add ecx, dword [esp + 0x10]
mov eax, dword [ecx]
test eax, eax
jns 0x448128
mov dword [esp + edx*4 + 0x3c], 1
jmp 0x448136
mov eax, dword [ebp + eax*4 + 0x720]
mov eax, dword [eax + 4]
mov dword [esp + edx*4 + 0x3c], eax
inc edx
add ecx, 4
cmp edx, esi
jl 0x448118
mov ebp, dword [esp + 0x18c]
mov edx, edi
test ebx, ebx
jle 0x4481a8
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0x7c]
mov ebp, dword [esp + 0x14]
lea ebx, [ebx + eax*4]
mov eax, edi
test esi, esi
jle 0x448173
mov ecx, dword [ebx]
cmp ecx, dword [esp + eax*4 + 0x3c]
jl 0x44816f
inc eax
cmp eax, esi
jl 0x448162
jmp 0x448173
mov dword [esp + edx*4 + 0x5c], eax
mov eax, dword [esp + edx*4 + 0x5c]
add ebx, 4
mov ecx, dword [esp + 0x24]
shl eax, cl
mov ecx, dword [esp + 0x20]
or ecx, eax
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x30]
inc edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
cmp edx, ebp
jl 0x44815a
mov ebp, dword [esp + 0x18c]
mov ebx, dword [esp + 0x14]
jmp 0x4481ac
mov ecx, dword [esp + 0x20]
push dword [esp + 0x184]
mov eax, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x20]
imul eax, dword [eax + ecx*4 + 0x100], 0x38
add eax, dword [esp + 0x3c]
push eax
call fcn.004465e9
mov edx, dword [esp + 0x1c]
add esp, 0xc
add dword [ebp + 0x514], eax
mov eax, dword [esp + 0x18]
mov esi, edi
test ebx, ebx
jle 0x448247
mov edi, dword [esp + 0x14]
lea ecx, [eax*8 + 0x50]
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0x7c]
mov dword [esp + 0x18], ecx
lea ebx, [ebx + eax*4]
mov eax, dword [esp + esi*4 + 0x5c]
add eax, ecx
mov eax, dword [edx + eax*4]
test eax, eax
js 0x448239
mov ecx, dword [ebx]
imul eax, eax, 0x38
add eax, dword [esp + 0x34]
cmp ecx, dword [eax + 4]
jge 0x448235
push dword [esp + 0x184]
push ecx
push eax
call fcn.004465e9
mov edx, dword [esp + 0x1c]
add esp, 0xc
add dword [ebp + 0x518], eax
mov ecx, dword [esp + 0x18]
inc esi
add ebx, 4
cmp esi, edi
jl 0x4481ff
mov ebx, dword [esp + 0x14]
xor edi, edi
mov ecx, dword [esp + 0x28]
add dword [esp + 0x2c], ebx
inc ecx
mov eax, dword [esp + 0x1c]
add eax, 4
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], eax
cmp ecx, dword [edx]
jl 0x448093
mov ebx, dword [esp + 0x188]
xor ebp, ebp
mov ecx, dword [edx + 0x340]
inc ebp
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x190]
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x1c], edi
imul ecx, dword [esi]
mov eax, dword [edx + eax*4]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x18c]
cmp dword [eax + 0x504], ebp
jle 0x44831e
lea ebx, [eax + 0x108]
mov edx, dword [ebx]
mov eax, dword [esi + edx*4]
and eax, 0x7fff
cmp eax, dword [esi + edx*4]
jne 0x4482f7
mov edi, dword [esp + 0x10]
push dword [esp + 0x194]
mov esi, dword [edi + 0x340]
mov edi, dword [edi + edx*4 + 0x344]
imul esi, eax
push esi
push ecx
push edi
push dword [esp + 0x2c]
push dword [esp + 0x44]
call fcn.00448c26
mov ecx, esi
mov dword [esp + 0x34], edi
mov esi, dword [esp + 0x1a8]
add esp, 0x18
mov eax, dword [esp + 0x18c]
inc ebp
add ebx, 4
cmp ebp, dword [eax + 0x504]
jl 0x4482ad
mov ebx, dword [esp + 0x188]
jmp 0x44831e
mov eax, dword [esp + 0x194]
mov dword [eax + edi*4], ecx
inc edi
mov eax, dword [ebx + 0x24]
cdq
sub eax, edx
sar eax, 1
cmp edi, eax
jl 0x448313
xor eax, eax
inc eax
pop ebx
jmp 0x44835d
push 1
push edi
push dword [esp + 0x188]
call fcn.0044c900
mov eax, dword [esi + 0x24]
cdq
sub eax, edx
sar eax, 1
shl eax, 2
push eax
push edi
push dword [esp + 0x1a4]
call sub.MSVCRT.dll_memset
add esp, 0x18
xor eax, eax
pop edi
pop esi
pop ebp
add esp, 0x170
ret