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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x90
push esi
push edi
mov edi, ecx
mov dword [esp + 0x10], edi
cmp dword [edi + 0x274], 3
je 0x4aa859
lea esi, [edi + 0x244]
mov ecx, esi
mov dword [esp + 0x18], esi
call fcn.004bc94b
test al, al
je 0x4aa005
push dword [ebp + 8]
call fcn.004b282b
pop ecx
jmp 0x4aa008
mov eax, dword [ebp + 8]
cmp byte [edi + 0x539], 0
mov dword [esp + 0x1c], eax
jne 0x4aa041
mov ecx, esi
call fcn.004bc7c6
test al, al
jne 0x4aa041
mov ecx, esi
call fcn.004bca54
sub esp, 0x10
mov esi, eax
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x28]
mov ecx, esi
call fcn.004bcb93
mov edi, dword [esp + 0x10]
mov ecx, edi
call fcn.004ab967
mov ecx, esi
call fcn.004bc7c6
test al, al
je 0x4aa062
mov ecx, esi
call fcn.004bc94b
test al, al
je 0x4aa062
mov al, 1
jmp 0x4aa064
xor al, al
mov esi, dword [esp + 0x1c]
push eax
push esi
call fcn.004ab9f4
pop ecx
pop ecx
test al, al
je 0x4aa27e
mov esi, dword [esp + 0x18]
mov ecx, esi
call fcn.004bc7c6
mov ecx, esi
test al, al
je 0x4aa091
call fcn.004bca76
jmp 0x4aa096
call fcn.004bca54
mov esi, eax
lea edi, [esp + 0x30]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x18]
mov ecx, edi
call fcn.004bc7c6
test al, al
jne 0x4aa0b6
mov ecx, edi
call fcn.004bc5b7
mov eax, dword [esp + 0x34]
mov edx, 0x97c
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 8], ecx
cmp eax, edx
jg 0x4aa170
je 0x4aa11b
sub eax, 0x901
je 0x4aa11b
dec eax
sub eax, 1
je 0x4aa1b7
sub eax, 6
je 0x4aa198
dec eax
sub eax, 1
je 0x4aa186
sub eax, 0x11
jne 0x4aa1fc
mov edx, dword [esp + 0x10]
push ecx
mov ecx, dword [edx + 0x2ac]
call fcn.004c836b
jmp 0x4aa1f3
mov edx, dword [esp + 0x10]
push ecx
mov ecx, dword [edx + 0x2ac]
call fcn.004c6331
test al, al
je 0x4aa13f
mov eax, dword [esp + 0xc]
test eax, eax
je 0x4aa13f
sub eax, 1
jmp 0x4aa1e4
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x540]
shr eax, 2
test al, 1
je 0x4aa167
push dword [esp + 8]
mov ecx, dword [ecx + 0x2ac]
call fcn.004c56ec
test eax, eax
jle 0x4aa1fc
dec dword [esp + 8]
jmp 0x4aa1f7
sub eax, 0x97d
je 0x4aa1b7
sub eax, 1
je 0x4aa198
sub eax, 1
je 0x4aa106
sub eax, 1
jne 0x4aa1fc
mov edx, dword [esp + 0x10]
push ecx
mov ecx, dword [edx + 0x2ac]
call fcn.004c67b3
jmp 0x4aa1f3
mov edx, dword [esp + 0x10]
push ecx
mov edi, dword [edx + 0x2ac]
add edi, 4
push edi
mov esi, dword [edi]
call dword [esi + 0x14]
push eax
push edi
call dword [esi + 0x18]
mov edi, dword [esp + 0x18]
jmp 0x4aa1f3
mov eax, dword [esp + 0x10]
test byte [eax + 0x540], 1
je 0x4aa1f0
mov esi, dword [eax + 0x2ac]
mov ecx, edi
call fcn.004bc924
push eax
mov ecx, esi
call fcn.004c6331
test al, al
je 0x4aa1ec
mov eax, dword [esp + 0xc]
add eax, 1
js 0x4aa1fc
mov dword [esp + 0xc], eax
jmp 0x4aa1fc
mov ecx, dword [esp + 8]
lea eax, [ecx + 1]
mov dword [esp + 8], eax
and dword [esp + 0xc], 0
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0xc]
call fcn.004bc3ab
xor ecx, ecx
push 0xffffffffffffffff
inc ecx
test al, al
pop eax
cmovne ecx, eax
lea eax, [esp + 0x28]
push ecx
push dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
push dword [esp + 0x10]
push eax
call fcn.004acda3
mov edx, dword [esp + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 8], ecx
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x6c], ecx
mov ecx, edi
mov dword [edx + 0x274], 2
mov dword [esp + 0x68], eax
call fcn.004bca76
mov ecx, dword [esp + 0x10]
lea esi, [esp + 0x60]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.004b1599
jmp 0x4aa802
lea ecx, [edi + 0x244]
call fcn.004bc7c6
test al, al
je 0x4aa366
push esi
call fcn.004ad710
pop ecx
lea ecx, [edi + 0x244]
test eax, eax
jle 0x4aa2be
lea eax, [esp + 0x78]
push eax
call fcn.004bc84f
lea edx, [eax + 8]
mov eax, dword [edx]
mov dword [esp + 0x1c], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x2c], eax
jmp 0x4aa2da
lea eax, [esp + 0x88]
push eax
call fcn.004bc84f
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], ecx
mov eax, dword [edx]
mov ecx, dword [edx + 4]
sub esi, 0x908
je 0x4aa312
dec esi
sub esi, 1
je 0x4aa300
sub esi, 0x11
jne 0x4aa331
mov ecx, dword [edi + 0x2ac]
push eax
call fcn.004c836b
jmp 0x4aa32f
mov eax, dword [esp + 0x1c]
mov ecx, dword [edi + 0x2ac]
push eax
call fcn.004c67b3
jmp 0x4aa32f
mov edi, dword [edi + 0x2ac]
mov eax, dword [esp + 0x1c]
add edi, 4
push eax
push edi
mov esi, dword [edi]
call dword [esi + 0x14]
push eax
push edi
call dword [esi + 0x18]
mov edi, dword [esp + 0x10]
xor ecx, ecx
mov dword [edi + 0x274], 1
lea esi, [esp + 0x30]
sub esp, 0x10
mov dword [esp + 0x44], ecx
mov dword [esp + 0x4c], ecx
mov edi, esp
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.004bcb93
jmp 0x4aa802
cmp byte [edi + 0x53a], 0
jne 0x4aa381
mov ecx, edi
call fcn.004ab967
lea ecx, [edi + 0x244]
call fcn.004bc5b7
and dword [esp + 0x14], 0
lea ecx, [edi + 0x244]
call fcn.004bc5ae
test eax, eax
je 0x4aa802
mov ecx, dword [esp + 0x14]
push ecx
lea ecx, [edi + 0x244]
call fcn.004bca3c
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, 0x956
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
cmp esi, eax
jg 0x4aa4df
je 0x4aa543
lea eax, [esi - 0x900]
cmp eax, 0x2d
ja case.0x4aa3e7.2316
movzx eax, byte [eax + 0x4aa890]
jmp dword [eax*4 + 0x4aa864]
test edx, edx
je 0x4aa404
sub edx, 1
js case.0x4aa3e7.2316
mov dword [esp + 0xc], edx
jmp case.0x4aa3e7.2316
mov eax, dword [edi + 0x540]
shr eax, 2
test al, 1
je 0x4aa429
push ecx
mov ecx, dword [edi + 0x2ac]
call fcn.004c56ec
test eax, eax
jle case.0x4aa3e7.2316
mov ecx, dword [esp + 8]
lea eax, [ecx - 1]
jmp 0x4aa5dc
mov eax, dword [edi + 0x540]
shr eax, 1
test al, 1
je 0x4aa467
push ecx
mov ecx, dword [edi + 0x2ac]
call fcn.004c6331
test al, al
je 0x4aa463
mov eax, dword [esp + 0xc]
add eax, 1
js case.0x4aa3e7.2316
mov dword [esp + 0xc], eax
jmp case.0x4aa3e7.2316
mov ecx, dword [esp + 8]
lea eax, [ecx + 1]
jmp 0x4aa5dc
or eax, 0xffffffff
push eax
push ecx
mov ecx, dword [edi + 0x2ac]
call fcn.004c6fc0
jmp 0x4aa5dc
push 1
jmp 0x4aa473
push ecx
mov edi, dword [edi + 0x2ac]
add edi, 4
push edi
mov esi, dword [edi]
call dword [esi + 0x14]
push eax
push edi
call dword [esi + 0x18]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
jmp 0x4aa5dc
push 1
push ecx
mov ecx, edi
call fcn.004b1cf5
jmp 0x4aa5dc
push ecx
mov ecx, dword [edi + 0x2ac]
call fcn.004c836b
jmp 0x4aa5dc
push ecx
mov ecx, dword [edi + 0x2ac]
call fcn.004c67b3
jmp 0x4aa5dc
push 0
jmp 0x4aa4ac
mov eax, 0x992
cmp esi, eax
jg 0x4aa59c
je case.0x4aa3e7.2349
mov eax, esi
sub eax, 0x957
je 0x4aa543
sub eax, 1
je 0x4aa532
sub eax, 1
je 0x4aa532
sub eax, 0x2e
je 0x4aa52c
sub eax, 1
je 0x4aa52c
sub eax, 1
je 0x4aa519
sub eax, 1
jne case.0x4aa3e7.2316
push 1
push ecx
mov ecx, dword [edi + 0x2ac]
call fcn.004c6e9a
jmp 0x4aa5dc
or eax, 0xffffffff
push eax
jmp 0x4aa51b
push ecx
mov ecx, dword [edi + 0x2ac]
call fcn.004c8714
jmp 0x4aa5dc
push ecx
mov ecx, dword [edi + 0x2ac]
call fcn.004c845b
jmp 0x4aa5dc
push 1
push ecx
mov ecx, edi
call fcn.004b1cf5
or ecx, 0xffffffff
push ecx
push 0
push eax
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.004acda3
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 8], eax
lea eax, [esp + 8]
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x48]
push eax
call fcn.004bc3c1
test al, al
je case.0x4aa3e7.2316
push dword [esp + 8]
jmp 0x4aa489
mov eax, esi
sub eax, 0x993
je 0x4aa5d4
sub eax, 1
je 0x4aa5d4
sub eax, 1
je 0x4aa5ca
sub eax, 1
je 0x4aa5ca
sub eax, 0xc6
je 0x4aa5c0
sub eax, 1
jne case.0x4aa3e7.2316
push ecx
mov ecx, edi
call fcn.004b26aa
jmp 0x4aa5dc
push ecx
mov ecx, edi
call fcn.004b26d8
jmp 0x4aa5dc
push ecx
mov ecx, edi
call fcn.004ac10d
and dword [esp + 0xc], 0
mov dword [esp + 8], eax
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0xc]
call fcn.004bc3ab
xor ecx, ecx
push 0xffffffffffffffff
inc ecx
test al, al
pop eax
cmovne ecx, eax
lea eax, [esp + 0x70]
push ecx
push dword [esp + 0x10]
mov ecx, edi
push dword [esp + 0x10]
push eax
call fcn.004acda3
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x20], eax
mov dword [esp + 0xc], eax
mov eax, 0x956
mov dword [esp + 0x24], ecx
mov dword [esp + 8], ecx
cmp esi, eax
jg 0x4aa6d5
je case.0x4aa651.2308
lea eax, [esi - 0x900]
cmp eax, 0x2d
ja case.0x4aa651.2316
movzx eax, byte [eax + 0x4aa8d0]
jmp dword [eax*4 + 0x4aa8c0]
push dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov ecx, edi
call fcn.004bca3c
push eax
lea ecx, [eax + 8]
call fcn.004a50bc
test al, al
je 0x4aa67e
mov esi, dword [esp + 8]
mov edi, dword [esp + 0xc]
jmp 0x4aa6b0
push dword [esp + 0x14]
mov ecx, edi
call fcn.004bca3c
cmp esi, 0x900
jne 0x4aa69f
lea ecx, [esp + 0x60]
push ecx
mov ecx, eax
call fcn.0048fe11
jmp 0x4aa6ab
lea ecx, [esp + 0x30]
push ecx
mov ecx, eax
call fcn.0048c5c9
mov esi, dword [eax]
mov edi, dword [eax + 4]
push dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
call fcn.004bca3c
mov dword [eax], esi
mov dword [eax + 4], edi
mov dword [eax + 8], esi
mov dword [eax + 0xc], edi
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
jmp case.0x4aa651.2316
mov eax, 0x992
cmp esi, eax
jg 0x4aa79b
je case.0x4aa651.2305
mov eax, esi
sub eax, 0x957
je case.0x4aa651.2305
sub eax, 1
je case.0x4aa651.2308
sub eax, 1
je case.0x4aa651.2305
sub eax, 0x2e
je case.0x4aa651.2308
sub eax, 1
je case.0x4aa651.2305
sub eax, 1
je case.0x4aa651.2308
sub eax, 1
jne case.0x4aa651.2316
push dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
call fcn.004bca3c
mov ecx, dword [esp + 8]
sub esp, 0x10
mov edi, esp
mov dword [esp + 0x60], ecx
mov dword [esp + 0x50], ecx
mov esi, dword [eax + 0xc]
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x34], esi
mov dword [esp + 0x6c], esi
lea esi, [esp + 0x60]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x30], edx
mov dword [esp + 0x54], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x24]
push edi
call fcn.004bcdc9
mov ecx, dword [esp + 0x18]
push edi
call fcn.004bca3c
mov ecx, dword [esp + 0x40]
mov dword [eax], ecx
mov ecx, dword [esp + 0x44]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x20]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + 0xc], ecx
jmp 0x4aa6c8
mov eax, esi
sub eax, 0x993
je case.0x4aa651.2308
sub eax, 1
je case.0x4aa651.2305
sub eax, 1
je case.0x4aa651.2308
sub eax, 1
je case.0x4aa651.2305
sub eax, 0xc6
jmp 0x4aa70c
push dword [esp + 0x14]
lea ecx, [edi + 0x244]
call fcn.004bca3c
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
inc dword [esp + 0x14]
lea ecx, [edi + 0x244]
call fcn.004bc5ae
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jb 0x4aa39d
mov ecx, dword [esp + 0x18]
call fcn.004bca7a
mov esi, dword [esp + 0x10]
lea edi, [esp + 0x50]
mov ecx, dword [esp + 0x18]
lea esi, [esi + 0x670]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.004bca54
sub esp, 0x10
lea esi, [esp + 0x60]
mov edi, esp
or ecx, 0xffffffff
push 1
movsd dword es:[edi], dword [esi]
push 0
push ecx
push dword [eax + 4]
movsd dword es:[edi], dword [esi]
push dword [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x34]
mov ecx, esi
call fcn.004ad3aa
mov ecx, esi
call fcn.004ab967
mov ecx, esi
call fcn.004b1576
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 4