Function at 0x4a9180
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x34]
cmp eax, dword [ecx + 8]
jbe 0x4a9cd6
sub esp, 0xb4
lea eax, [0x4dfb60]
mov dword [esp], eax
call fcn.0040bad0
mov eax, dword [esp + 4]
mov dword [esp + 0x6c], eax
lea ecx, [0x4dd5e0]
mov dword [esp], ecx
call fcn.0040bad0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xb8]
mov dword [eax], ecx
mov ecx, dword [0x5a2480]
test ecx, ecx
jne 0x4a91e7
mov ecx, dword [esp + 0xbc]
mov dword [eax + 4], ecx
jmp 0x4a91fa
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xbc]
call fcn.0045e510
mov eax, ecx
mov dword [esp + 0x58], eax
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x1c], 0x7fffffff
lea ecx, [0x4d5a20]
mov dword [esp], ecx
call fcn.0040bad0
mov eax, dword [esp + 4]
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x10]
mov ebx, dword [esp + 0xbc]
mov dword [esp], ebx
mov dword [esp + 8], 0x60
mov dword [esp + 0xc], 0x60
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
call edx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
test eax, eax
jne 0x4a9862
mov eax, dword [esp + 0x80]
cmp byte [eax], 0x4d
jne 0x4a93c4
cmp byte [eax + 1], 0x5a
jne 0x4a93c4
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x54], eax
lea ecx, [0x4d5820]
mov dword [esp], ecx
call fcn.0040bad0
mov eax, dword [esp + 4]
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x10]
mov ebx, dword [esp + 0xbc]
mov dword [esp], ebx
mov dword [esp + 8], 4
mov dword [esp + 0xc], 4
mov dword [esp + 0x14], 0
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x10], ebp
call edx
mov eax, dword [esp + 0x7c]
cmp byte [eax], 0x50
jne 0x4a932b
cmp byte [eax + 1], 0x45
jne 0x4a932b
movzx ecx, byte [eax + 2]
test cl, cl
jne 0x4a932b
movzx ecx, byte [eax + 3]
test cl, cl
jne 0x4a932b
mov eax, dword [esp + 0x54]
add eax, 4
mov ecx, 0
adc ecx, 0
jmp 0x4a93c8
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
lea ecx, [0x4d5820]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409370
mov eax, dword [esp + 8]
lea ecx, [0x4d5820]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], eax
lea eax, [0x4ec18b]
mov dword [esp], eax
mov dword [esp + 4], 0x1e
lea eax, [esp + 0x84]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.0049b9e0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
add esp, 0xb4
ret
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov edx, dword [esp + 0x58]
mov ebx, dword [edx + 8]
mov ebp, dword [edx + 0xc]
add eax, ebx
mov edi, ebp
adc ebp, ecx
cmp eax, ebx
setb bl
cmp edi, ebp
xchg edi, ebx
sete bl
xchg edi, ebx
setg cl
and edi, ebx
or ecx, edi
test cl, cl
jne 0x4a93ff
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], ebp
lea eax, [0x509f5c]
mov dword [esp], eax
mov dword [esp + 4], edx
lea ecx, [0x50a150]
mov dword [esp + 8], ecx
lea ebx, [0x5a236c]
mov dword [esp + 0xc], ebx
lea ebp, [0x4d1880]
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x14], ebp
call fcn.00481e00
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
test eax, eax
jne 0x4a9842
mov eax, dword [esp + 0x6c]
movzx ecx, word [eax]
cmp cx, 0x5032
ja 0x4a9484
cmp cx, 0x14c
ja 0x4a9471
test cx, cx
je 0x4a94b0
cmp cx, 0x14c
je 0x4a94b0
jmp 0x4a97af
cmp cx, 0x1c4
je 0x4a94b0
cmp cx, 0x5032
je 0x4a94b0
jmp 0x4a97af
cmp cx, 0x5128
ja 0x4a949e
cmp cx, 0x5064
je 0x4a94b0
cmp cx, 0x5128
je 0x4a94b0
jmp 0x4a97af
cmp cx, 0x8664
je 0x4a94b0
cmp cx, 0xaa64
jne 0x4a97af
mov dword [esp], eax
lea ecx, [0x50a064]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x58]
mov dword [esp + 8], edx
call fcn.004ac5b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x6c]
mov dword [edi + 0x44], ecx
mov dword [edi + 0x48], edx
mov ecx, dword [0x5a2480]
test ecx, ecx
jne 0x4a94fb
mov dword [edi + 0x40], eax
jmp 0x4a9509
lea ecx, [edi + 0x40]
mov edx, edi
mov edi, ecx
call fcn.0045e510
mov edi, edx
test ebx, ebx
jne 0x4a978f
mov dword [esp], edi
lea eax, [0x50a064]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x58]
mov dword [esp + 8], ecx
call fcn.004aca80
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x74], esi
mov edi, dword [esp + 0x6c]
mov dword [edi + 0x38], ecx
mov dword [edi + 0x3c], edx
mov esi, dword [0x5a2480]
test esi, esi
jne 0x4a9560
mov dword [edi + 0x34], eax
jmp 0x4a956e
lea esi, [edi + 0x34]
mov edi, esi
call fcn.0045e510
mov edi, dword [esp + 0x6c]
test ebx, ebx
jne 0x4a976b
mov ebx, dword [edi + 0x40]
mov ebp, dword [edi + 0x44]
mov esi, dword [edi + 0x48]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], esi
call fcn.004ad090
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x6c]
mov dword [edi + 0x2c], ecx
mov dword [edi + 0x30], edx
mov ecx, dword [0x5a2480]
test ecx, ecx
jne 0x4a95cc
mov dword [edi + 0x28], eax
jmp 0x4a95da
lea ecx, [edi + 0x28]
mov edx, edi
mov edi, ecx
call fcn.0045e510
mov edi, edx
test ebx, ebx
jne 0x4a974b
lea eax, [0x4dfc00]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00409370
mov eax, dword [esp + 8]
lea ecx, [0x4dfc00]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00483170
mov eax, dword [esp + 8]
mov ecx, eax
sar eax, 0x1f
mov edx, dword [esp + 0x48]
add ecx, edx
mov edx, dword [esp + 0x4c]
adc edx, eax
mov eax, dword [esp + 0x58]
mov ebx, dword [eax + 8]
mov ebp, dword [eax + 0xc]
add ecx, ebx
adc edx, ebp
cmp ecx, ebx
setb bl
cmp ebp, edx
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg esi, ebx
setg bl
xchg esi, ebx
and ebp, ebx
or esi, ebp
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a965a
mov ecx, dword [0x57d5d0]
mov edx, dword [0x57d5d4]
jmp 0x4a9664
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
xor ecx, ecx
xor edx, edx
test ecx, ecx
jne 0x4a972b
mov ecx, dword [esp + 0x6c]
movzx edx, word [ecx + 0x10]
lea ebx, [0x50a064]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov word [esp + 8], dx
call fcn.004a9d30
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x6c]
mov dword [esi + 0x14], ecx
mov ecx, dword [0x5a2480]
test ecx, ecx
jne 0x4a96b5
mov dword [esi + 0x18], eax
jmp 0x4a96bd
lea edi, [esi + 0x18]
call fcn.0045e510
test edx, edx
jne 0x4a970b
movzx eax, word [esi + 2]
lea ecx, [0x4dbbe0]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.004474c0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x6c]
movzx edx, word [ecx + 2]
mov dword [ecx + 0x20], edx
mov dword [ecx + 0x24], edx
mov edx, dword [0x5a2480]
test edx, edx
jne 0x4a96fc
mov dword [ecx + 0x1c], eax
jmp 0x4a9704
lea edi, [ecx + 0x1c]
call fcn.0045e510
xor eax, eax
jmp 0x4a9885
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], ebp
add esp, 0xb4
ret
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], edx
add esp, 0xb4
ret
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], ebp
mov dword [esp + 0xc8], esi
add esp, 0xb4
ret
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], ebp
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc8], eax
add esp, 0xb4
ret
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], ebp
mov dword [esp + 0xc8], esi
add esp, 0xb4
ret
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
movzx eax, word [eax]
mov word [esp], ax
call fcn.004093e0
mov eax, dword [esp + 4]
lea ecx, [0x4d70c0]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], eax
lea eax, [0x4ebaae]
mov dword [esp], eax
mov dword [esp + 4], 0x1c
lea eax, [esp + 0x84]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.0049b9e0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
add esp, 0xb4
ret
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], edx
add esp, 0xb4
ret
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], edx
add esp, 0xb4
ret
inc eax
mov ecx, ebp
movzx edx, word [ecx + 2]
cmp eax, edx
jge 0x4a9bbd
mov dword [esp + 0x44], eax
lea eax, [0x4e0e40]
mov dword [esp], eax
call fcn.0040bad0
mov eax, dword [esp + 4]
mov dword [esp + 0x5c], eax
lea ecx, [0x509f5c]
mov dword [esp], ecx
mov edx, dword [esp + 0x58]
mov dword [esp + 4], edx
lea ebx, [0x50a150]
mov dword [esp + 8], ebx
lea ebp, [0x5a236c]
mov dword [esp + 0xc], ebp
lea esi, [0x4d7ee0]
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], eax
call fcn.00481e00
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
test eax, eax
jne 0x4a9b9d
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x44]
mov ebx, dword [eax + 0x48]
mov ebp, dword [esp + 0x5c]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call fcn.004ac160
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
test eax, eax
jne 0x4a9b7d
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x68], ebx
lea eax, [0x4de8e0]
mov dword [esp], eax
call fcn.0040bad0
mov eax, dword [esp + 4]
mov dword [esp + 0x60], eax
lea edi, [esp + 0x8c]
xor eax, eax
call fcn.0045e716
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x5c]
mov edx, dword [ecx + 8]
mov dword [esp + 0x94], edx
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x98], edx
mov edx, dword [ecx + 0x10]
mov dword [esp + 0x9c], edx
mov edx, dword [ecx + 0x14]
mov dword [esp + 0xa0], edx
mov edx, dword [ecx + 0x18]
mov dword [esp + 0xa4], edx
mov edx, dword [ecx + 0x1c]
mov dword [esp + 0xa8], edx
movzx edx, word [ecx + 0x20]
mov word [esp + 0xac], dx
movzx edx, word [ecx + 0x22]
mov word [esp + 0xae], dx
mov edx, dword [ecx + 0x24]
mov dword [esp + 0xb0], edx
mov edx, dword [0x5a2480]
test edx, edx
jne 0x4a99f8
mov edi, dword [esp + 0x60]
lea esi, [esp + 0x8c]
call fcn.0045ebcc
jmp 0x4a9a1b
lea eax, [0x4e0d80]
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 4], eax
lea ecx, [esp + 0x8c]
mov dword [esp + 8], ecx
call fcn.0040fac0
xor eax, eax
mov ecx, dword [esp + 0x5c]
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x4a9a34
lea ecx, [0x5a236c]
lea edx, [0x509ffc]
jmp 0x4a9a42
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x34], edx
mov ebx, dword [esp + 0x60]
mov ebp, dword [ebx + 0x14]
mov dword [esp + 0x38], ebp
mov esi, dword [ebx + 0x10]
mov edi, 0xffffffff
sub edi, esi
cmp edi, ebp
xchg edi, ebx
setae bl
xchg edi, ebx
mov ebx, 0xffffffff
sub ebx, esi
mov ebx, 0x7fffffff
sbb ebx, 0
test ebx, ebx
setg bl
sete cl
and edi, ecx
or edi, ebx
xchg edi, eax
test al, al
xchg edi, eax
je 0x4a9a90
add esi, ebp
adc eax, 0
jmp 0x4a9a9a
mov eax, 0x7fffffff
mov esi, 0xffffffff
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], eax
lea ecx, [0x4dd5e0]
mov dword [esp], ecx
call fcn.0040bad0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x34]
mov dword [eax], ecx
mov ecx, dword [0x5a2480]
test ecx, ecx
jne 0x4a9acd
mov edx, dword [esp + 0x64]
mov dword [eax + 4], edx
jmp 0x4a9add
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x64]
call fcn.0045e510
mov eax, ecx
mov edx, dword [esp + 0x38]
mov dword [eax + 8], edx
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], 0
mov edx, dword [esp + 0x2c]
mov dword [eax + 0x18], edx
mov edx, dword [esp + 0x30]
mov dword [eax + 0x1c], edx
mov edx, dword [0x5a2480]
test edx, edx
jne 0x4a9b16
mov edx, dword [esp + 0x60]
mov dword [edx + 0x3c], eax
jmp 0x4a9b22
mov edx, dword [esp + 0x60]
lea edi, [edx + 0x3c]
call fcn.0045e510
lea ebx, [0x509f70]
mov dword [edx + 0x34], ebx
mov ebp, dword [0x5a2480]
test ebp, ebp
jne 0x4a9b3a
mov dword [edx + 0x38], eax
jmp 0x4a9b42
lea edi, [edx + 0x38]
call fcn.0045e510
mov ebp, dword [esp + 0x6c]
mov esi, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x20]
mov eax, dword [esp + 0x44]
cmp eax, ecx
jae 0x4a9cd0
lea edi, [esi + eax*4]
mov ebx, dword [0x5a2480]
test ebx, ebx
jne 0x4a9b6d
mov dword [esi + eax*4], edx
jmp 0x4a9882
mov ecx, eax
mov eax, edx
call fcn.0045e510
mov eax, ecx
jmp 0x4a9882
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], edx
add esp, 0xb4
ret
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], edx
add esp, 0xb4
ret
mov edx, dword [ecx + 0x20]
mov dword [esp + 0x50], edx
mov ebx, dword [esp + 0x58]
xor eax, eax
jmp 0x4a9bd9
inc eax
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x58]
cmp eax, edx
jge 0x4a9ca0
mov ebp, dword [ecx + 0x20]
mov esi, dword [ecx + 0x1c]
cmp eax, ebp
jae 0x4a9cc9
mov dword [esp + 0x40], eax
mov ecx, dword [esi + eax*4]
test byte [ecx], al
mov dword [esp], ecx
lea ecx, [0x50a064]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.004ac270
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x1c]
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x40]
cmp eax, ecx
jae 0x4a9cc4
mov edx, dword [edx + eax*4]
mov dword [edx + 0x2c], ebp
mov dword [edx + 0x30], esi
mov ebp, dword [0x5a2480]
test ebp, ebp
jne 0x4a9c5c
mov dword [edx + 0x28], ebx
jmp 0x4a9c70
add edx, 0x28
mov ecx, edi
mov edi, edx
mov ebp, eax
mov eax, ebx
call fcn.0045e510
mov eax, ebp
mov edi, ecx
test edi, edi
je 0x4a9bcc
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0x78]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0xc8], eax
add esp, 0xb4
ret
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
add esp, 0xb4
ret
call fcn.0045e590
mov ecx, ebp
call fcn.0045e590
call fcn.0045e590
nop
call fcn.0045d0e0
jmp fcn.004a9180