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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 8]
cmp eax, dword [ecx + 8]
jbe 0x474f45
sub esp, 0x88
lea edi, [esp + 0x94]
xor eax, eax
call fcn.00451726
mov ecx, dword [esp + 0x8c]
movzx edx, byte [ecx + 0xf]
and edx, 0x1f
cmp edx, 0x14
jne 0x47496b
mov dword [esp], ecx
mov eax, dword [esp + 0x90]
mov dword [esp + 4], eax
call fcn.00475b40
lea esi, [esp + 8]
lea edi, [esp + 0x94]
call fcn.00451bdc
add esp, 0x88
ret
mov dword [esp], ecx
call fcn.00474820
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x90]
test edx, edx
jl 0x474f2c
cmp edx, eax
jge 0x474f2c
shl edx, 4
mov ebx, dword [ecx + edx + 0xc]
mov dword [esp + 0x58], ebx
mov ebp, dword [ecx + edx + 4]
mov dword [esp + 0x54], ebp
mov ecx, dword [ecx + edx]
nop
mov edx, dword [esp + 0x8c]
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.004386b0
mov eax, dword [esp + 8]
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
test eax, eax
je 0x4749f8
lea ecx, [eax + 3]
mov dword [esp + 0x80], ecx
movzx ecx, byte [eax + 1]
shl ecx, 8
movzx eax, byte [eax + 2]
or ecx, eax
mov dword [esp + 0x84], ecx
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], eax
nop
mov eax, dword [esp + 0x8c]
mov dword [esp], eax
mov ecx, dword [esp + 0x54]
mov dword [esp + 4], ecx
call fcn.004386f0
mov eax, dword [esp + 8]
mov dword [esp + 0x68], eax
movzx ecx, word [eax + 0x20]
test cx, cx
jne 0x474ea7
xor ecx, ecx
lea eax, [0x795bc0]
mov dword [esp], eax
mov dword [esp + 4], 0
inc ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 8], ecx
call fcn.0043c700
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x48]
cmp ecx, 1
jb 0x474e69
mov edx, 1
lea ebx, [0x8351a0]
mov dword [eax], ebx
mov ebp, dword [0xa918d0]
test ebp, ebp
jne 0x474e4a
mov ebp, dword [esp + 0x8c]
mov dword [eax + 4], ebp
mov esi, dword [esp + 0x68]
mov edi, ebp
movzx ebp, byte [esi + 0xc]
xchg ebp, eax
test al, 1
xchg ebp, eax
je 0x474e40
mov ebp, 0x34
movzx ebx, word [esi + 0x20]
test bx, bx
jne 0x474e2a
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x34], ebx
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x5c], eax
xor eax, eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x5c]
jmp 0x474af8
mov edx, dword [esp + 0x50]
inc edx
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x44]
mov esi, dword [esp + 0x68]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x44], edx
mov esi, dword [esp + 0x50]
cmp esi, ebx
jge 0x474b8f
mov ebp, dword [ebp + esi*4]
lea ebx, [edx + 1]
cmp ebx, ecx
ja 0x474b47
mov dword [esp + 0x44], ebx
lea ebx, [eax + edx*8]
lea esi, [0x8351a0]
mov dword [ebx], esi
lea ebx, [eax + edx*8 + 4]
mov esi, dword [0xa918d0]
test esi, esi
jne 0x474b34
mov dword [ebx], ebp
jmp 0x474adb
mov edx, edi
mov edi, ebx
mov esi, eax
mov eax, ebp
call fcn.00451480
mov eax, esi
mov edi, edx
jmp 0x474adb
mov dword [esp + 0x70], ebp
lea ebp, [0x795bc0]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.0043c860
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea ebx, [ecx + 1]
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x8c]
mov ecx, edx
mov edx, dword [esp + 0x44]
jmp 0x474b13
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x78], eax
mov ebx, dword [esp + 0x68]
movzx ebp, word [ebx + 0x22]
and ebp, 0x7fff
test bp, bp
jne 0x474e03
xor ebp, ebp
mov dword [esp + 0x3c], ebp
lea eax, [0x795bc0]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], ebp
call fcn.0043c700
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x68]
movzx edx, byte [ecx + 0xc]
test dl, 1
je 0x474df9
mov edx, 0x34
movzx ebx, word [ecx + 0x22]
and ebx, 0x7fff
test bx, bx
jne 0x474daf
xor edx, edx
xor ebx, ebx
mov dword [esp + 0x30], edx
mov dword [esp + 0x7c], ebx
mov ebp, dword [esp + 0x3c]
xor esi, esi
xor edi, edi
jmp 0x474c2a
inc esi
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x7c]
cmp esi, edx
jge 0x474cb5
mov ecx, dword [ebx + esi*4]
lea ebx, [edi + 1]
cmp ebx, ebp
ja 0x474c6a
mov dword [esp + 0x38], ebx
lea edx, [eax + edi*8]
lea ebx, [0x8351a0]
mov dword [edx], ebx
mov edx, dword [0xa918d0]
lea edi, [eax + edi*8 + 4]
test edx, edx
jne 0x474c5d
mov dword [edi], ecx
jmp 0x474c11
mov edx, eax
mov eax, ecx
call fcn.00451480
mov eax, edx
jmp 0x474c11
mov dword [esp + 0x50], esi
mov dword [esp + 0x64], ecx
mov dword [esp + 0x38], edi
lea ecx, [0x795bc0]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
call fcn.0043c860
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea ebx, [ecx + 1]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x38]
jmp 0x474c3c
movzx edx, byte [ecx + 0xf]
and edx, 0x1f
cmp edx, 0x13
jne 0x474ed4
movzx ecx, word [ecx + 0x22]
mov edx, dword [esp + 0x78]
mov dword [esp], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ebp
test cx, 0x8000
setne al
mov byte [esp + 0x18], al
call fcn.004788e0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa8], eax
lea edx, [0x748940]
mov dword [esp], edx
call fcn.0040a580
mov eax, dword [esp + 4]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x8c]
mov dword [esp], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
call fcn.00438730
mov eax, dword [0xa918d0]
mov ecx, dword [esp + 8]
test eax, eax
jne 0x474da0
mov eax, dword [esp + 0x74]
mov dword [eax], ecx
mov ecx, dword [esp + 0x40]
lea edx, [0x8351a0]
cmp ecx, edx
jne 0x474eb8
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], 0x13
mov eax, dword [esp + 0x90]
mov dword [esp + 0xb8], eax
add esp, 0x88
ret
mov edi, dword [esp + 0x74]
mov eax, ecx
call fcn.00451480
mov eax, edi
jmp 0x474d5c
movzx ebp, word [ecx + 0x20]
add ebx, ebp
movzx ebx, bx
lea esi, [edx + ecx]
cmp ebx, 0x100000
ja 0x474ef5
movzx edx, bp
cmp edx, ebx
ja 0x474eec
sub ebx, edx
lea ebp, [edx - 0x100000]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
shl edx, 2
sar ebp, 0x1f
and ebp, edx
add ebp, esi
mov edx, ebx
mov ebx, ebp
jmp 0x474bff
mov edx, 0x24
jmp 0x474be8
movzx esi, word [ebx + 0x20]
add ebp, esi
movzx ebp, bp
cmp ebp, 0x100000
ja 0x474f0a
movzx esi, si
cmp esi, ebp
ja 0x474f01
sub ebp, esi
jmp 0x474bb0
movzx ebx, bx
add ebp, esi
cmp ebx, 0x100000
jbe 0x474ac3
jmp 0x474f16
mov ebp, 0x24
jmp 0x474ab2
lea edi, [eax + 4]
mov ebp, eax
mov eax, dword [esp + 0x8c]
call fcn.00451480
mov eax, ebp
mov ebp, dword [esp + 0x8c]
jmp 0x474a98
lea edx, [0x795bc0]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 1
call fcn.0043c860
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
inc ecx
mov ebx, edx
mov edx, ecx
mov ecx, ebx
jmp 0x474a78
movzx ecx, cx
cmp ecx, 0x100000
jbe 0x474a43
jmp 0x474f22
mov dword [esp], ecx
lea eax, [0x79f6c0]
mov dword [esp + 4], eax
lea eax, [0x795bc0]
mov dword [esp + 8], eax
call fcn.00407c00
lea eax, [0x748600]
mov dword [esp], eax
lea eax, [0x828a50]
mov dword [esp + 4], eax
call fcn.0042af30
mov eax, edx
mov ecx, ebx
call fcn.00451560
mov ecx, ebx
mov edx, 0x100000
call fcn.00451520
mov eax, esi
mov ecx, ebp
call fcn.00451560
mov ecx, ebp
mov edx, 0x100000
call fcn.00451520
mov ecx, ebx
mov edx, 0x100000
call fcn.00451520
mov edx, 0x100000
call fcn.00451520
lea eax, [0x748600]
mov dword [esp], eax
lea eax, [0x828a38]
mov dword [esp + 4], eax
call fcn.0042af30
nop
call fcn.0044fc40
jmp fcn.00474900