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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xd0
mov esi, edx
mov dword [esp + 4], ecx
call 0x4a73b9
pop eax
mov dword [esp + 0xb0], eax
mov ecx, dword [esp + 0xe8]
call fcn.0043d93f
mov ecx, eax
mov ebx, dword [esi + 0x10]
mov ebp, dword [esi]
mov edi, dword [esi + 4]
mov eax, dword [esi + 8]
mov esi, dword [esi + 0xc]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x88], esi
mov dword [esp + 0x80], esi
mov byte [esp + 0x84], 0
mov ebp, dword [esp + 0xe4]
mov eax, dword [esp + 0xe8]
add eax, ebp
mov dword [esp + 0x18], 0
xor edi, edi
mov dword [esp], eax
mov ebx, edi
cmp ebp, eax
je 0x4a74cf
mov ecx, ebp
mov dl, byte [ebp]
movzx esi, dl
test dl, dl
js 0x4a7453
lea ebp, [ecx + 1]
jmp 0x4a74b2
and esi, 0x1f
movzx edi, byte [ecx + 1]
and edi, 0x3f
cmp dl, 0xdf
jbe 0x4a749d
movzx eax, byte [ecx + 2]
shl edi, 6
and eax, 0x3f
or eax, edi
cmp dl, 0xf0
jb 0x4a74a7
mov dl, 1
mov dword [esp + 8], edx
lea ebp, [ecx + 4]
movzx edx, byte [ecx + 3]
and esi, 7
shl esi, 0x12
shl eax, 6
and edx, 0x3f
or edx, eax
or esi, edx
cmp esi, 0x110000
mov eax, dword [esp]
jne 0x4a74b2
jmp 0x4a74d7
lea ebp, [ecx + 2]
shl esi, 6
or esi, edi
jmp 0x4a74b2
lea ebp, [ecx + 3]
shl esi, 0xc
or esi, eax
mov eax, dword [esp]
mov edi, ebp
sub edi, ecx
add edi, ebx
cmp esi, 0x21
jb 0x4a7438
mov dword [esp + 8], 0
mov dword [esp + 0x18], edi
jmp 0x4a74d9
mov cl, 1
mov dword [esp + 8], ecx
mov ebp, eax
mov edi, ebx
mov dword [esp + 0xb4], ebx
cmp ebp, eax
je 0x4a757c
mov ecx, eax
mov dl, byte [eax - 1]
test dl, dl
js 0x4a74f9
lea eax, [ecx - 1]
movzx edx, dl
jmp 0x4a756b
movzx eax, byte [ecx - 2]
cmp al, 0xc0
jge 0x4a7535
movzx ebx, byte [ecx - 3]
mov dword [esp + 0xc], ebx
cmp bl, 0xbf
jg 0x4a7540
lea esi, [ecx - 4]
mov dword [esp], esi
movzx esi, byte [ecx - 4]
and esi, 7
shl esi, 6
mov dword [esp + 0xb8], esi
mov esi, dword [esp + 0xc]
and esi, 0x3f
add esi, dword [esp + 0xb8]
jmp 0x4a754d
lea esi, [ecx - 2]
mov dword [esp], esi
and eax, 0x1f
jmp 0x4a7555
lea esi, [ecx - 3]
mov dword [esp], esi
mov esi, dword [esp + 0xc]
and esi, 0xf
shl esi, 6
and eax, 0x3f
or eax, esi
shl eax, 6
and dl, 0x3f
movzx edx, dl
or edx, eax
cmp edx, 0x110000
mov eax, dword [esp]
je 0x4a757c
cmp edx, 0x21
jb 0x4a74e0
sub edi, ebp
add edi, ecx
mov ebx, edi
jmp 0x4a7580
mov ebx, dword [esp + 0x18]
xor eax, eax
cmp byte [esp + 8], 0
mov ecx, dword [esp + 0xb4]
cmovne ecx, eax
mov eax, dword [esp + 0xe4]
add eax, ecx
mov dword [esp], eax
cmp dword [esp + 0x14], 0
je 0x4a7675
mov eax, ebx
sub eax, ecx
cmp eax, dword [esp + 0xe8]
jae 0x4a75c8
push 1
push dword [esp + 0x18]
mov eax, dword [esp + 0x90]
call dword [eax + 0x14]
add esp, 8
mov eax, dword [esp + 0xe4]
add eax, ebx
mov ebp, 0x2600
mov edx, dword [esp]
cmp edx, eax
je 0x4a7675
mov cl, byte [edx]
movzx esi, cl
test cl, cl
js 0x4a75ed
inc edx
jmp 0x4a7654
and esi, 0x1f
movzx edi, byte [edx + 1]
and edi, 0x3f
cmp cl, 0xdf
jbe 0x4a763b
mov ebp, ebx
movzx ebx, byte [edx + 2]
shl edi, 6
and ebx, 0x3f
or ebx, edi
cmp cl, 0xf0
jb 0x4a7645
movzx ecx, byte [edx + 3]
and esi, 7
mov edi, esi
shl edi, 0x12
shl ebx, 6
and ecx, 0x3f
or ecx, ebx
mov esi, ecx
or esi, edi
cmp esi, 0x110000
mov ebx, ebp
mov ebp, 0x2600
je 0x4a7675
add edx, 4
jmp 0x4a7654
add edx, 2
shl esi, 6
or esi, edi
jmp 0x4a7654
add edx, 3
shl esi, 0xc
or esi, ebx
mov ebx, ebp
mov ebp, 0x2600
cmp esi, 0xd
ja 0x4a75d9
bt ebp, esi
jae 0x4a75d9
push 9
push dword [esp + 0x18]
mov eax, dword [esp + 0x90]
call dword [eax + 0x14]
add esp, 8
mov edi, dword [esp + 0xe4]
add edi, ebx
mov ebx, dword [esp]
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], edi
lea ecx, [esp + 0x40]
mov dword [ecx], ebx
mov dword [ecx + 4], edi
call fcn.004a86f9
cmp eax, 0x110000
je 0x4a77d1
lea ecx, [esp + 0x40]
mov dword [ecx], ebx
mov dword [ecx + 4], edi
call fcn.004a86f9
and eax, 0x1fffdf
add eax, 0xffffffbf
cmp eax, 0x19
ja 0x4a77d1
lea ecx, [esp + 0x8c]
call fcn.004a86f9
cmp eax, 0x110000
je 0x4a77c9
xor ebp, ebp
lea esi, [esp + 0x8c]
lea edx, [eax - 0x61]
lea ecx, [eax - 0x41]
cmp edx, 0x1a
jb 0x4a770c
cmp ecx, 0x1a
jb 0x4a770c
lea edx, [eax - 0x30]
cmp edx, 0xa
jb 0x4a770c
lea edx, [eax - 0x2d]
cmp edx, 2
jb 0x4a770c
cmp eax, 0x2b
jne 0x4a775d
mov edx, eax
or dl, 0x20
cmp ecx, 0x1a
movzx ebx, dl
cmovae ebx, eax
cmp ebp, dword [esp + 0x64]
jne 0x4a7735
lea ecx, [esp + 0x64]
mov edx, ebp
call fcn.0041372a
mov eax, dword [esp + 0x68]
mov ebp, dword [esp + 0x6c]
jmp 0x4a7739
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov byte [eax + ebp], bl
inc ebp
mov dword [esp + 0x6c], ebp
mov ecx, esi
call fcn.004a86f9
cmp eax, 0x110000
jne 0x4a76e7
cmp byte [esp + 0x84], 1
jmp 0x4a7760
cmp eax, 0x3a
mov ebx, dword [esp]
jne 0x4a77c9
mov edx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x90]
movups xmm0, xmmword [esp + 0x64]
movups xmm1, xmmword [esp + 0x74]
movups xmmword [esp + 0x1c], xmm0
mov eax, dword [esp + 0x84]
mov dword [esp + 0x3c], eax
movups xmmword [esp + 0x2c], xmm1
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea eax, [edi - 2]
cmp eax, 3
ja 0x4a797b
mov ecx, dword [esp + 0xb0]
add ecx, dword [eax*4 + 0x4a7f30]
jmp ecx
mov dword [esp + 0x6c], 0
mov esi, dword [esp + 0x70]
test esi, esi
je 0x4a781f
lea ecx, [esp + 0x40]
mov dword [ecx], ebx
mov dword [ecx + 4], edi
call fcn.004a86f9
cmp eax, 0x23
jne 0x4a7823
mov eax, dword [esp + 0x84]
lea edx, [esp + 0x40]
mov dword [edx + 0x20], eax
movups xmm0, xmmword [esp + 0x64]
movups xmm1, xmmword [esp + 0x74]
movups xmmword [edx + 0x10], xmm1
movups xmmword [edx], xmm0
mov ecx, dword [esp + 4]
push edi
push ebx
push esi
call fcn.004ab83c
add esp, 0xc
jmp 0x4a7e60
mov al, 6
jmp 0x4a7877
mov dword [esp + 0xc], edi
mov edi, dword [esi + 0x20]
mov ebx, edi
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x18]
mov ebp, edx
inc ebx
je 0x4a7851
mov ebp, edx
sub ebp, ebx
jbe 0x4a784f
cmp byte [ecx + ebx], 0xbf
jg 0x4a7851
push 0x521964
push edx
push ebx
call fcn.004cbd80
jne 0x4a7843
mov al, 7
test ebp, ebp
je 0x4a7877
cmp byte [ecx + ebx], 0x2f
jne 0x4a7877
test edi, edi
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp]
je 0x4a78ac
cmp edx, edi
jbe 0x4a78a6
cmp byte [ecx + edi], 0xbf
jg 0x4a78ac
jmp 0x4a7b29
mov ecx, dword [esp + 4]
mov byte [ecx + 4], al
mov dword [ecx], 2
cmp dword [esp + 0x64], 0
je 0x4a7e60
push dword [esp + 0x10]
push 0
push dword [0x530ac8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x4a7e60
jne 0x4a7b29
mov edx, edi
call fcn.004a87b8
test al, al
je 0x4a78eb
mov ecx, dword [esp + 0x84]
lea edx, [esp + 0x40]
mov dword [edx + 0x20], ecx
movups xmm0, xmmword [esp + 0x64]
movups xmm1, xmmword [esp + 0x74]
movups xmmword [edx + 0x10], xmm1
movups xmmword [edx], xmm0
movzx eax, al
mov ecx, dword [esp + 4]
push esi
push eax
push ebx
push ebp
call fcn.004ab188
jmp 0x4a7e5d
mov eax, dword [esp + 0x84]
lea edx, [esp + 0x40]
mov dword [edx + 0x20], eax
movups xmm0, xmmword [esp + 0x64]
movups xmm1, xmmword [esp + 0x74]
movups xmmword [edx + 0x10], xmm1
movups xmmword [edx], xmm0
mov ecx, dword [esp + 4]
push esi
push ebx
push ebp
jmp 0x4a7d54
mov bl, 2
mov ecx, edi
cmp edi, dword [esp + 0x1c]
mov dword [esp], edx
jne 0x4a79a0
lea esi, [esp + 0x1c]
mov ecx, esi
mov edx, edi
call fcn.0041372a
mov edx, dword [esp]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
mov esi, eax
mov byte [esi + ecx], 0x3a
inc ecx
mov dword [esp + 0x24], ecx
cmp bl, 2
je 0x4a7a43
movzx eax, bl
cmp eax, 1
jne 0x4a7ac0
mov dword [esp + 0x14], ecx
mov dword [esp + 8], esi
mov dword [esp + 0x10], edi
xor edi, edi
lea esi, [esp + 0x40]
mov dword [esp + 0xc], ebp
mov ebx, ebp
mov ebp, edx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebx
mov ecx, esi
call fcn.004a86f9
cmp eax, 0x5c
je 0x4a79f1
cmp eax, 0x2f
jne 0x4a79fc
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
inc edi
jmp 0x4a79d8
cmp edi, 1
ja 0x4a7da9
mov esi, dword [esp + 0x28]
test esi, esi
je 0x4a7da9
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x14]
test eax, eax
mov edi, dword [esp + 0x10]
je 0x4a7d64
mov edx, dword [esi + 0x18]
cmp edx, eax
jbe 0x4a7d5e
cmp byte [ecx + eax], 0xbf
jg 0x4a7d64
push 0x521974
push eax
jmp 0x4a7b2f
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xac], eax
movups xmm0, xmmword [esp + 0x1c]
movups xmm1, xmmword [esp + 0x2c]
movups xmmword [esp + 0x9c], xmm1
movups xmmword [esp + 0x8c], xmm0
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ebp
mov ecx, str.__file:__
mov ebx, edx
mov edx, 2
lea eax, [esp + 0x40]
push eax
call fcn.004a88e0
add esp, 4
test al, al
je 0x4a7b36
lea edx, [esp + 0x40]
mov eax, dword [edx]
mov esi, dword [edx + 4]
mov ecx, dword [esp + 0x3c]
mov dword [edx + 0x20], ecx
movups xmm0, xmmword [esp + 0x1c]
movups xmm1, xmmword [esp + 0x2c]
movups xmmword [edx + 0x10], xmm1
movups xmmword [edx], xmm0
mov ecx, dword [esp + 4]
push edi
push 2
push esi
push eax
jmp 0x4a7e58
mov esi, dword [esp + 0x34]
test esi, esi
je 0x4a7af8
mov edi, dword [esp + 0x38]
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ebp
mov ecx, str.__file:__
mov edx, 2
lea eax, [esp + 0x40]
push eax
call fcn.004a88e0
add esp, 4
test al, al
jne 0x4a7af8
push 4
push esi
call dword [edi + 0x14]
add esp, 8
mov esi, dword [esp + 0x28]
xor eax, eax
test esi, esi
je 0x4a7d26
mov edi, dword [esi + 0x20]
test edi, edi
je 0x4a7d26
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x18]
cmp edx, edi
jbe 0x4a7d10
cmp byte [ecx + edi], 0xbf
jg 0x4a7d16
push 0x521974
push edi
push 0
call fcn.004cbd80
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x94]
mov byte [esp + 0xbf], 0
lea esi, [esp + 0x40]
mov dword [esi], ebx
mov dword [esi + 4], ebp
mov ecx, esi
call fcn.004a86f9
cmp eax, 0x2f
jne 0x4a7bb8
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
mov eax, edi
cmp edi, dword [esp + 0x8c]
jne 0x4a7b89
lea ecx, [esp + 0x8c]
mov edx, edi
call fcn.0041372a
lea eax, [esp + 0x8c]
mov eax, dword [eax + 8]
lea ecx, [esp + 0x8c]
mov edx, dword [ecx + 4]
mov byte [edx + eax], 0x2f
inc eax
mov dword [ecx + 8], eax
mov byte [esp + 0x40], 0
mov edx, 2
push ebx
push ebp
push edi
push esi
call fcn.004aa248
add esp, 0x10
mov ebp, edx
jmp 0x4a7ea8
mov dword [esp], edi
mov eax, ebp
cmp ebx, ebp
je 0x4a7ea5
mov ecx, 0x2600
mov eax, ebx
mov dl, byte [ebx]
movzx esi, dl
test dl, dl
js 0x4a7bda
lea edx, [ebx + 1]
jmp 0x4a7c32
mov edi, ebp
and esi, 0x1f
movzx ebp, byte [ebx + 1]
and ebp, 0x3f
cmp dl, 0xdf
jbe 0x4a7c17
movzx ecx, byte [ebx + 2]
shl ebp, 6
and ecx, 0x3f
or ecx, ebp
cmp dl, 0xf0
jb 0x4a7c23
lea ebp, [ebx + 4]
movzx edx, byte [ebx + 3]
and esi, 7
shl esi, 0x12
shl ecx, 6
and edx, 0x3f
or edx, ecx
or esi, edx
mov edx, ebp
jmp 0x4a7c2b
lea edx, [ebx + 2]
shl esi, 6
or esi, ebp
mov ebp, edi
jmp 0x4a7c32
lea edx, [ebx + 3]
shl esi, 0xc
or esi, ecx
mov ebp, edi
mov ecx, 0x2600
cmp esi, 0xd
ja 0x4a7c47
bt ecx, esi
jae 0x4a7c47
mov ebx, edx
cmp edx, ebp
jne 0x4a7bcc
jmp 0x4a7d09
cmp esi, 0x110000
je 0x4a7ea3
mov edi, edx
xor ecx, ecx
inc ecx
cmp esi, 0x80
jb 0x4a7c7b
mov ecx, 2
cmp esi, 0x800
jb 0x4a7c7b
cmp esi, 0x10000
mov ecx, 4
sbb ecx, 0
mov edx, ebp
sub edx, ebx
cmp ecx, edx
jae 0x4a7c8e
cmp byte [ebx + ecx], 0xbf
jg 0x4a7c94
jmp 0x4a7f21
jne 0x4a7f21
mov dword [esp + 0xc], ecx
cmp esi, 0x23
je 0x4a7caf
cmp esi, 0x3f
je 0x4a7caf
cmp esi, 0x110000
jne 0x4a7cbd
jmp 0x4a7f1b
cmp byte [esp + 0xac], 0
je 0x4a7ea5
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa8]
push ebp
push edi
push esi
call fcn.004aba90
add esp, 0xc
mov dword [esp + 0x40], ebx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], 0x5217d8
lea ecx, [esp + 0x8c]
lea edx, [esp + 0x40]
call fcn.0043d9b7
mov ebx, edi
cmp edi, ebp
mov ecx, 0x2600
jne 0x4a7bca
mov eax, ebp
jmp 0x4a7ea5
jne 0x4a7b29
cmp edi, 4
jne 0x4a7d26
xor eax, eax
cmp dword [ecx], 0x656c6966
cmove eax, esi
mov dword [esp + 0x24], 0
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x40]
mov dword [edx + 0x20], ecx
movups xmm0, xmmword [esp + 0x2c]
movups xmmword [edx + 0x10], xmm0
movups xmm0, xmmword [esp + 0x1c]
movups xmmword [edx], xmm0
mov ecx, dword [esp + 4]
push eax
push ebp
push dword [esp + 8]
call fcn.004a8973
jmp 0x4a7817
jne 0x4a7a38
test edi, edi
je 0x4a7d8c
cmp dword [esp + 0x14], edi
jbe 0x4a7d8a
mov edx, dword [esp + 8]
cmp byte [edx + edi], 0xbf
jg 0x4a7d8c
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x14]
push 0x521620
jmp 0x4a7b2e
jne 0x4a7d78
cmp eax, edi
jne 0x4a7da9
push dword [esp + 0x10]
push dword [esp + 0xc]
push ecx
call fcn.004b6b8a
add esp, 0xc
test eax, eax
je 0x4a7e6b
mov edi, dword [esp + 0x34]
test edi, edi
je 0x4a7e30
mov eax, dword [esp + 0x38]
mov dword [esp + 8], eax
lea edx, [esp + 0x8c]
mov eax, dword [esp]
mov dword [edx], eax
mov eax, dword [esp + 0xc]
mov dword [edx + 4], eax
mov byte [edx + 8], 0
xor eax, eax
lea esi, [esp + 0x40]
mov dword [esi], eax
mov dword [esi + 4], 1
mov dword [esp], 0
mov dword [esi + 8], eax
mov ecx, esi
call fcn.004a652f
mov ecx, dword [esi]
mov eax, dword [esi + 4]
cmp dword [esi + 8], 2
jne 0x4a7e0a
movzx edx, word [eax]
cmp edx, 0x2f2f
sete dl
mov dword [esp], edx
test ecx, ecx
je 0x4a7e1d
push eax
push 0
push dword [0x530ac8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp byte [esp], 0
jne 0x4a7e30
push 3
push edi
mov eax, dword [esp + 0x10]
call dword [eax + 0x14]
add esp, 8
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x40]
mov dword [edx + 0x20], eax
movups xmm0, xmmword [esp + 0x1c]
movups xmm1, xmmword [esp + 0x2c]
movups xmmword [edx + 0x10], xmm1
movups xmmword [edx], xmm0
mov ecx, dword [esp + 4]
push dword [esp + 0x10]
push 1
push ebx
push ebp
call fcn.004a9610
add esp, 0x10
add esp, 0xd0
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x40]
mov dword [edx + 0x20], eax
movups xmm0, xmmword [esp + 0x2c]
movups xmmword [edx + 0x10], xmm0
movups xmm0, xmmword [esp + 0x1c]
movups xmmword [edx], xmm0
mov ecx, dword [esp + 4]
push esi
push 1
push dword [esp + 0x14]
push dword [esp + 0xc]
jmp 0x4a78e1
mov eax, edx
mov edi, dword [esp]
mov ecx, dword [esp + 0xac]
lea edx, [esp + 0x40]
mov dword [edx + 0x20], ecx
movups xmm0, xmmword [esp + 0x8c]
movups xmm1, xmmword [esp + 0x9c]
movups xmmword [edx + 0x10], xmm1
movups xmmword [edx], xmm0
sub esp, 0x2c
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edi
lea eax, [esp + 0xeb]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], edi
mov dword [esp + 8], edi
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov dword [esp + 0x18], 0
mov dword [esp], 2
mov ecx, dword [esp + 0x30]
call fcn.004aab54
add esp, 0x2c
jmp 0x4a7e60
mov ecx, edi
mov eax, edi
jmp 0x4a7ea5
mov eax, ecx
mov ecx, ebx
push 0x521610
jmp 0x4a7a3d