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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xf4
mov edi, dword [esp + 0x108]
lea eax, [esp + 0x54]
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov ebx, dword [edi + 8]
push eax
mov ecx, dword [edi + 0xfc]
push ecx
push 0xffffffffffffffff
push 0x1141
push 0x1140
push edi
call dword [ebx + 0x30]
add esp, 0x20
mov edx, dword [esp + 0x4c]
test edx, edx
mov esi, eax
je 0x4470a8
mov eax, dword [edi + 0x58]
cmp dword [eax + 0x344], 0xc
je 0x4470c0
mov dword [eax + 0x358], 1
mov eax, 1
add esp, 0xec
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [edi + 0xbc]
mov eax, dword [ebx + 0x90]
mov edx, dword [edi + 0x40]
test eax, eax
mov dword [esp + 0x40], edx
mov ebp, edx
je 0x447443
mov eax, dword [eax + 0x3c]
test eax, eax
jne 0x4475bd
mov eax, dword [ebx + 0x90]
mov eax, dword [eax + 0x40]
test eax, eax
jne 0x447599
mov ecx, dword [ebx + 0x90]
mov eax, dword [ecx + 0x44]
test eax, eax
jne 0x447575
mov ebx, dword [edi + 0x58]
mov dword [esp + 0x14], 0
sub esp, 0xc
mov ecx, dword [ebx + 0x348]
lea edx, [esp + 0x5c]
mov ebx, dword [ecx + 0xc]
push edx
call fcn.004780d0
add esp, 0x10
test bl, 1
jne 0x44734a
test bl, 0x10
jne 0x447453
test bl, 2
jne 0x44728b
test bl, 4
jne 0x44728b
test bl, bl
js 0x447643
test bl, 0x40
jne 0x447710
test bh, 4
jne 0x4476b1
mov eax, dword [esp + 0x38]
test eax, eax
je 0x447616
xor ebx, ebx
mov bl, byte [ebp]
xor ecx, ecx
mov cl, byte [ebp + 1]
shl ebx, 8
or ebx, ecx
mov dword [esp + 0x48], ebx
sub esp, 0xc
lea ebx, [esi - 2]
mov esi, dword [esp + 0x44]
push esi
call fcn.00461060
mov esi, dword [esp + 0x58]
add ebp, 2
add esp, 0x10
cmp esi, ebx
jne 0x4475e1
cmp ebx, eax
jg 0x4475e1
test ebx, ebx
jle 0x4475e1
mov edx, dword [esp + 0x38]
mov eax, dword [edx]
cmp eax, 6
je 0x4478df
cmp eax, 0x74
je 0x447a24
cmp eax, 0x198
jne 0x4478d2
push ebx
push 0
sub esp, 8
call fcn.00478aa0
pop edx
pop ecx
push eax
lea ebx, [esp + 0x5c]
push ebx
call fcn.00478120
add esp, 0xc
push 0x20
mov edx, dword [edi + 0x58]
add edx, 0xb8
push edx
lea ecx, [esp + 0x5c]
push ecx
call fcn.004782c0
add esp, 0xc
push 0x20
mov eax, dword [edi + 0x58]
add eax, 0x98
push eax
lea ebx, [esp + 0x5c]
push ebx
call fcn.004782c0
add esp, 0xc
mov edx, dword [esp + 0x18]
push edx
mov ecx, dword [esp + 0x48]
push ecx
lea eax, [esp + 0x5c]
push eax
call fcn.004782c0
mov ebx, dword [esp + 0x48]
push ebx
push esi
push ebp
lea ebp, [esp + 0x6c]
push ebp
call fcn.00478ab0
add esp, 0x20
test eax, eax
je 0x447ac0
sub esp, 0xc
mov esi, dword [esp + 0x44]
push esi
call fcn.00461850
pop ecx
lea edi, [esp + 0x5c]
push edi
call fcn.004783a0
mov eax, 1
add esp, 0x10
lea esi, [esi]
add esp, 0xec
pop ebx
pop esi
pop edi
pop ebp
ret
sub esp, 0xc
mov ebx, 0x2f
push 0x4a0
push 0x50dae0
push 0xeb
push 0x8d
push 0x14
call fcn.0045d0e0
add esp, 0x1c
push ebx
push 2
push edi
call fcn.0044f910
add esp, 0x10
sub esp, 0xc
mov eax, dword [esp + 0x44]
push eax
call fcn.00461850
add esp, 0x10
mov ebp, dword [esp + 0x34]
test ebp, ebp
je 0x4472e5
sub esp, 0xc
mov ecx, dword [esp + 0x40]
push ecx
call fcn.0046bf90
add esp, 0x10
mov edx, dword [esp + 0x30]
test edx, edx
je 0x4472fd
sub esp, 0xc
mov ebx, dword [esp + 0x3c]
push ebx
call fcn.0046ba80
add esp, 0x10
sub esp, 0xc
mov ebp, dword [esp + 0x34]
push ebp
call fcn.00478e20
pop eax
mov esi, dword [esp + 0x30]
push esi
call fcn.00473660
add esp, 0x10
mov edi, dword [esp + 0x2c]
test edi, edi
je 0x447330
sub esp, 0xc
mov eax, dword [esp + 0x38]
push eax
call fcn.004759e0
add esp, 0x10
sub esp, 0xc
lea ecx, [esp + 0x5c]
push ecx
call fcn.004783a0
mov eax, 0xffffffff
add esp, 0x10
jmp 0x447280
call fcn.0046bf80
test eax, eax
mov dword [esp + 0x34], eax
je 0x4478b1
xor edx, edx
mov dl, byte [ebp]
xor ecx, ecx
mov cl, byte [ebp + 1]
shl edx, 8
or edx, ecx
lea eax, [edx + 2]
add ebp, 2
cmp eax, esi
mov dword [esp + 0x48], edx
mov dword [esp + 0x3c], eax
jg 0x4475fd
push eax
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + 0x10]
push eax
push edx
push ebp
call fcn.00477310
mov edx, dword [esp + 0x44]
add esp, 0x10
test eax, eax
mov dword [edx + 0x10], eax
je 0x4476dc
mov edx, ebp
add edx, dword [esp + 0x48]
xor ecx, ecx
mov cl, byte [edx]
xor eax, eax
mov al, byte [edx + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x3c]
lea ebp, [edx + 2]
lea edx, [ecx + eax + 2]
cmp edx, esi
mov dword [esp + 0x48], ecx
mov dword [esp + 0x14], edx
jg 0x447698
push eax
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x14]
push eax
push ecx
push ebp
call fcn.00477310
mov ecx, dword [esp + 0x44]
add esp, 0x10
test eax, eax
mov dword [ecx + 0x14], eax
je 0x44774f
add ebp, dword [esp + 0x48]
sub esi, dword [esp + 0x14]
test bh, 1
je 0x4476ff
mov eax, dword [edi + 0xbc]
mov edx, dword [eax + 0x90]
sub esp, 0xc
mov ecx, dword [edx + 0xc]
push ecx
call fcn.00457940
mov dword [esp + 0x48], eax
add esp, 0x10
mov eax, dword [edi + 0xbc]
mov edx, dword [esp + 0x34]
mov ecx, dword [eax + 0x90]
mov dword [ecx + 0x3c], edx
mov dword [esp + 0x34], 0
jmp 0x447163
call fcn.0044d8f0
mov dword [ebx + 0x90], eax
jmp 0x44710a
call fcn.0046ba70
test eax, eax
mov dword [esp + 0x30], eax
je 0x4479db
xor edx, edx
mov dl, byte [ebp]
xor eax, eax
mov al, byte [ebp + 1]
shl edx, 8
or edx, eax
lea ecx, [edx + 2]
add ebp, 2
cmp ecx, esi
mov dword [esp + 0x48], edx
mov dword [esp + 0x10], ecx
jg 0x44767f
push ecx
push 0
push edx
push ebp
call fcn.00477310
mov edx, dword [esp + 0x40]
add esp, 0x10
test eax, eax
mov dword [edx + 8], eax
je 0x44772c
mov edx, ebp
add edx, dword [esp + 0x48]
xor ecx, ecx
mov cl, byte [edx]
xor eax, eax
mov al, byte [edx + 1]
shl ecx, 8
or ecx, eax
lea ebp, [edx + 2]
mov edx, dword [esp + 0x10]
lea eax, [ecx + edx + 2]
cmp eax, esi
mov dword [esp + 0x48], ecx
mov dword [esp + 0xc], eax
jg 0x4476c3
push eax
push 0
push ecx
push ebp
call fcn.00477310
mov ecx, dword [esp + 0x40]
add esp, 0x10
test eax, eax
mov dword [ecx + 0xc], eax
je 0x447880
mov edx, ebp
add edx, dword [esp + 0x48]
xor ecx, ecx
mov cl, byte [edx]
xor eax, eax
mov al, byte [edx + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0xc]
lea ebp, [edx + 2]
lea edx, [ecx + eax + 2]
cmp edx, esi
mov dword [esp + 0x48], ecx
mov dword [esp + 0x14], edx
jg 0x447736
push eax
push 0
push ecx
push ebp
call fcn.00477310
mov ecx, dword [esp + 0x40]
add esp, 0x10
test eax, eax
mov dword [ecx + 0x14], eax
je 0x447a06
add ebp, dword [esp + 0x48]
sub esi, dword [esp + 0x14]
test bh, 1
jne 0x44788d
test bh, 2
jne 0x4479ef
mov edx, dword [edi + 0xbc]
mov ecx, dword [esp + 0x30]
mov eax, dword [edx + 0x90]
mov dword [eax + 0x40], ecx
mov dword [esp + 0x30], 0
jmp 0x447163
sub esp, 0xc
push eax
call fcn.004759e0
mov eax, dword [edi + 0xbc]
mov ebx, dword [eax + 0x90]
add esp, 0x10
mov dword [ebx + 0x44], 0
jmp 0x44710a
sub esp, 0xc
push eax
call fcn.0046ba80
mov ebx, dword [edi + 0xbc]
mov edx, dword [ebx + 0x90]
add esp, 0x10
mov dword [edx + 0x40], 0
jmp 0x4470f9
sub esp, 0xc
push eax
call fcn.0046bf90
mov ebx, dword [edi + 0xbc]
mov ecx, dword [ebx + 0x90]
add esp, 0x10
mov dword [ecx + 0x3c], 0
jmp 0x4470e8
sub esp, 0xc
push 0x525
push 0x50dae0
mov ebx, 0x32
push 0x108
jmp 0x4472a2
sub esp, 0xc
push 0x42e
push 0x50dae0
mov ebx, 0x32
push 0x79
jmp 0x4472a2
and bh, 8
je 0x4478c5
test esi, esi
je 0x44725c
sub esp, 0xc
push 0x581
push 0x50dae0
mov ebx, 0x32
push 0x99
jmp 0x4472a2
call fcn.00475960
test eax, eax
mov dword [esp + 0x2c], eax
je 0x447ab3
cmp esi, 1
jle 0x447663
cmp byte [ebp], 3
je 0x447759
sub esp, 0xc
push 0x4c0
push 0x50dae0
mov ebx, 0x50
push 0x45c
jmp 0x4472a2
sub esp, 0xc
push 0x464
push 0x50dae0
mov ebx, 0x32
push 0x6e
jmp 0x4472a2
sub esp, 0xc
push 0x43d
push 0x50dae0
mov ebx, 0x32
push 0x78
jmp 0x4472a2
sub esp, 0xc
mov ebx, 0x28
push 0x513
jmp 0x447298
sub esp, 0xc
push 0x473
push 0x50dae0
mov ebx, 0x32
push 0x6c
jmp 0x4472a2
sub esp, 0xc
push 0x433
push 0x50dae0
push 3
push 0x8d
push 0x14
call fcn.0045d0e0
add esp, 0x20
jmp 0x4472bd
sub esp, 0xc
push 0x44d
push 0x50dae0
push 0x44
jmp 0x4476eb
sub esp, 0xc
push 0x50c
push 0x50dae0
mov ebx, 0xa
push 0xf4
jmp 0x4472a2
sub esp, 0xc
push 0x469
jmp 0x4476e4
sub esp, 0xc
push 0x482
push 0x50dae0
mov ebx, 0x32
push 0x6d
jmp 0x4472a2
sub esp, 0xc
push 0x442
jmp 0x4476e4
xor edx, edx
mov dl, byte [ebp + 1]
lea eax, [edx - 1]
cmp eax, 0x18
ja 0x447663
mov eax, dword [edx*4 + 0x4f4140]
test eax, eax
je 0x447663
sub esp, 0xc
push eax
call fcn.00479090
mov dword [esp + 0x2c], eax
add esp, 0x10
test eax, eax
je 0x447b75
sub esp, 8
mov edx, dword [esp + 0x24]
push edx
mov ecx, dword [esp + 0x38]
push ecx
call fcn.004762b0
add esp, 0x10
test eax, eax
je 0x447aeb
sub esp, 0xc
mov eax, dword [esp + 0x28]
push eax
call fcn.004736c0
pop edx
mov edx, dword [esp + 0x38]
push edx
call fcn.004762a0
mov ecx, dword [edi + 0x58]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0x348]
add esp, 0x10
test byte [eax + 0x10], 2
je 0x4477f7
sub esp, 0xc
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00474590
add esp, 0x10
cmp eax, 0xa3
jg 0x447b82
sub esp, 0xc
mov edx, dword [esp + 0x24]
push edx
call fcn.00473a80
mov dword [esp + 0x34], eax
add esp, 0x10
test eax, eax
je 0x447aff
call fcn.00478c00
test eax, eax
mov dword [esp + 0x28], eax
je 0x447aff
xor eax, eax
mov al, byte [ebp + 2]
mov dword [esp + 0x20], eax
add eax, 3
add ebp, 3
cmp eax, esi
mov dword [esp + 0x14], eax
jg 0x447863
sub esp, 0xc
mov ecx, dword [esp + 0x34]
push ecx
mov eax, dword [esp + 0x30]
push eax
push ebp
mov edx, dword [esp + 0x3c]
push edx
mov ecx, dword [esp + 0x34]
push ecx
call fcn.004752e0
add esp, 0x20
test eax, eax
jne 0x447b0c
sub esp, 0xc
push 0x4ed
push 0x50dae0
mov ebx, 0x32
push 0x459
jmp 0x4472a2
sub esp, 0xc
push 0x478
jmp 0x4476e4
mov eax, dword [edi + 0xbc]
mov edx, dword [eax + 0x90]
sub esp, 0xc
mov eax, dword [edx + 0xc]
push eax
call fcn.00457940
mov dword [esp + 0x48], eax
add esp, 0x10
jmp 0x447555
sub esp, 0xc
push 0x426
push 0x50dae0
push 0x41
jmp 0x4476eb
sub esp, 0xc
push 0x57b
jmp 0x447707
sub esp, 0xc
push 0x572
jmp 0x447707
lea eax, [esp + 0x60]
mov dword [esp + 8], 0
mov dword [esp + 0x44], eax
mov esi, 2
cmp esi, 2
push eax
push 0
je 0x447a13
mov edx, dword [edi + 0xd8]
mov eax, dword [edx + 0x90]
push eax
lea edx, [esp + 0x5c]
push edx
call fcn.00478120
add esp, 0xc
push 0x20
mov ecx, dword [edi + 0x58]
add ecx, 0xb8
push ecx
lea eax, [esp + 0x5c]
push eax
call fcn.004782c0
add esp, 0xc
push 0x20
mov edx, dword [edi + 0x58]
add edx, 0x98
push edx
lea ecx, [esp + 0x5c]
push ecx
call fcn.004782c0
add esp, 0xc
mov eax, dword [esp + 0x18]
push eax
mov edx, dword [esp + 0x48]
push edx
lea ecx, [esp + 0x5c]
push ecx
call fcn.004782c0
add esp, 0xc
lea eax, [esp + 0x4c]
push eax
mov edx, dword [esp + 0x4c]
push edx
lea ecx, [esp + 0x5c]
push ecx
call fcn.004782e0
dec esi
mov eax, dword [esp + 0x58]
add dword [esp + 0x54], eax
add dword [esp + 0x18], eax
add esp, 0x10
test esi, esi
jg 0x4478f4
sub esp, 8
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 0xc]
push eax
push ebx
push ebp
mov esi, dword [esp + 0x1c]
push esi
lea ebp, [esp + 0x78]
push ebp
push 0x72
call fcn.004732d0
mov dword [esp + 0x68], eax
add esp, 0x20
test eax, eax
jl 0x447ad2
jne 0x44725c
sub esp, 0xc
mov ebx, 0x33
push 0x547
push 0x50dae0
push 0x7b
jmp 0x4472a2
sub esp, 0xc
push 0x45c
push 0x50dae0
push 5
jmp 0x4476eb
mov edx, dword [edi + 0xbc]
mov ecx, dword [edx + 0x90]
sub esp, 0xc
mov eax, dword [ecx + 0x1c]
jmp 0x44789f
sub esp, 0xc
push 0x487
jmp 0x4476e4
mov ecx, dword [edi + 0xd8]
mov eax, dword [ecx + 0x8c]
jmp 0x44790c
push esi
push 0
sub esp, 8
call fcn.00478bf0
pop edx
pop ecx
push eax
lea edx, [esp + 0x5c]
push edx
call fcn.00478120
add esp, 0xc
push 0x20
mov ecx, dword [edi + 0x58]
add ecx, 0xb8
push ecx
lea eax, [esp + 0x5c]
push eax
call fcn.004782c0
add esp, 0xc
push 0x20
mov esi, dword [edi + 0x58]
add esi, 0x98
push esi
lea edx, [esp + 0x5c]
push edx
call fcn.004782c0
add esp, 0xc
mov ecx, dword [esp + 0x18]
push ecx
mov eax, dword [esp + 0x48]
push eax
lea esi, [esp + 0x5c]
push esi
call fcn.004782c0
mov edx, dword [esp + 0x48]
push edx
push ebx
push ebp
lea ebx, [esp + 0x6c]
push ebx
call fcn.00478ab0
add esp, 0x20
test eax, eax
jne 0x44725c
sub esp, 0xc
mov ebx, 0x33
push 0x559
jmp 0x4479cf
sub esp, 0xc
push 0x4ad
jmp 0x4478b9
sub esp, 0xc
mov ebx, 0x33
push 0x56b
jmp 0x4479cf
sub esp, 0xc
push 0x540
push 0x50dae0
mov ebx, 0x33
push 0x76
jmp 0x4472a2
sub esp, 0xc
push 0x4cc
push 0x50dae0
push 0x10
jmp 0x4476eb
sub esp, 0xc
push 0x4e1
jmp 0x4478b9
sub esi, dword [esp + 0x14]
add ebp, dword [esp + 0x20]
test bh, 1
jne 0x447bc2
test bh, 0x40
jne 0x447b9e
sub esp, 8
mov edx, dword [esp + 0x2c]
push edx
mov ecx, dword [esp + 0x38]
push ecx
call fcn.00476390
mov eax, dword [edi + 0xbc]
mov ecx, dword [eax + 0x90]
mov edx, dword [esp + 0x3c]
mov dword [ecx + 0x44], edx
mov dword [esp + 0x3c], 0
pop eax
mov eax, dword [esp + 0x34]
push eax
call fcn.00478e20
pop eax
mov edx, dword [esp + 0x30]
push edx
call fcn.00473660
mov dword [esp + 0x34], 0
add esp, 0x10
jmp 0x447163
sub esp, 0xc
push 0x4c7
jmp 0x447af3
sub esp, 0xc
push 0x4d7
push 0x50dae0
mov ebx, 0x3c
push 0x45f
jmp 0x4472a2
mov ecx, dword [edi + 0xbc]
mov eax, dword [ecx + 0x90]
sub esp, 0xc
mov edx, dword [eax + 0x34]
push edx
call fcn.00457940
mov dword [esp + 0x48], eax
add esp, 0x10
jmp 0x447b22
mov ecx, dword [edi + 0xbc]
mov eax, dword [ecx + 0x90]
sub esp, 0xc
mov edx, dword [eax + 0xc]
push edx
jmp 0x447bb1