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

Disassembly:
sub esp, 0x80
mov eax, dword [esp + 0x84]
mov ecx, dword [eax]
mov eax, dword [ecx]
push ebx
push ebp
push esi
xor esi, esi
push edi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x50], eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
cmp word [esp + 0xa4], si
je 0x4a08c4
test byte [eax + 0x3c], 0x80
je 0x4a08c4
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
mov edx, dword [esp + 0x98]
movzx eax, word [edx]
mov dword [esp + 0x68], eax
cmp ax, 0x3f
ja 0x4a08b7
movzx ecx, ax
mov eax, 1
xor edx, edx
mov byte [esp + 0x16], 1
mov dword [esp + 0x34], ecx
call fcn.00528330
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x5c]
ja 0x4a0ec0
jb 0x4a0930
mov ecx, dword [esp + 0x18]
cmp ecx, dword [esp + 0x58]
jae 0x4a0ec0
movzx eax, word [esp + 0xa4]
mov ecx, dword [esp + 0x38]
cmp ecx, eax
jg 0x4a0ec0
test ecx, ecx
jle 0x4a095a
mov edx, dword [esp + 0x2c]
mov esi, dword [edx + 8]
mov edx, dword [edx + 0xc]
or dword [esp + 0x40], esi
or dword [esp + 0x44], edx
cmp ecx, eax
jge 0x4a096d
mov eax, dword [esp + 0x9c]
mov edx, dword [eax + 0x18]
mov edx, dword [edx + ecx*4]
jmp 0x4a0974
mov edx, dword [esp + 0xa8]
test dword [edx + 0x24], 0x400
mov dword [esp + 0x2c], edx
jne 0x4a0eba
movzx eax, byte [edx + 0x10]
mov ecx, dword [esp + 0x94]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*4]
shl eax, 4
mov eax, dword [eax + ecx + 0x38]
xor ecx, ecx
cmp dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], ecx
jle 0x4a0ace
mov dword [esp + 0x28], ecx
mov eax, 1
xor edx, edx
call fcn.00528330
mov ebp, edx
mov ebx, eax
and eax, dword [esp + 0x18]
mov ecx, ebp
and ecx, dword [esp + 0x1c]
or eax, ecx
jne 0x4a0ab2
mov ecx, dword [esp + 0x98]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + edx]
call fcn.00469330
mov edi, eax
cmp byte [edi], 0x9a
jne 0x4a0ab2
mov ecx, dword [esp + 0x30]
cmp dword [edi + 0x1c], ecx
jne 0x4a0ab2
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
movsx ecx, word [edi + 0x20]
push 0
push 0x182
not eax
not edx
push eax
mov eax, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0xa4]
push ecx
add edx, 0x148
call fcn.0049d810
mov esi, eax
add esp, 0x14
test esi, esi
je 0x4a0ab2
test byte [esi + 0x12], 0x82
je 0x4a0aaa
cmp word [edi + 0x20], 0
jl 0x4a0aaa
mov edx, dword [esp + 0x98]
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x94]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + eax]
push edx
call fcn.00469360
add esp, 4
test eax, eax
jne 0x4a0a79
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 8]
mov edi, dword [eax]
mov eax, dword [esp + 0x94]
mov ecx, dword [eax]
push ecx
mov ecx, dword [esi]
call fcn.00469360
add esp, 4
test eax, eax
jne 0x4a0a9a
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 8]
mov eax, dword [eax]
push eax
push edi
call fcn.0043e190
add esp, 8
test eax, eax
jne 0x4a0ab2
or dword [esp + 0x18], ebx
or dword [esp + 0x1c], ebp
mov ecx, dword [esp + 0x24]
add dword [esp + 0x28], 0x18
inc ecx
cmp ecx, dword [esp + 0x34]
mov dword [esp + 0x24], ecx
jl 0x4a09b5
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x24]
test eax, 0x1000
jne 0x4a0d86
test eax, 0x100
je 0x4a0af2
xor edi, edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x54], edi
lea eax, [edi + 1]
jmp 0x4a0b26
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx + 0x1c]
mov dword [esp + 0x24], ecx
test ecx, ecx
je 0x4a08b7
test byte [ecx + 0x34], 4
jne 0x4a08b7
movzx edx, word [ecx + 0x2e]
cmp byte [ecx + 0x32], 0
movzx eax, word [ecx + 0x30]
mov dword [esp + 0x54], edx
setne byte [esp + 0x16]
mov edi, ecx
movzx esi, ax
xor edx, edx
mov byte [esp + 0x21], 0
mov byte [esp + 0x22], 0
mov byte [esp + 0x23], 0
mov dword [esp + 0x3c], edx
mov dword [esp + 0x64], esi
test esi, esi
jle 0x4a0d86
lea ebx, [ebx]
mov eax, dword [esp + 0x2c]
movzx ecx, word [eax + 0x18]
cmp edx, ecx
jge 0x4a0b89
cmp word [eax + 0x2a], 0
jne 0x4a0b89
mov eax, dword [eax + 0x30]
mov eax, dword [eax + edx*4]
movzx eax, word [eax + 0x12]
test eax, 0x182
je 0x4a0b89
test eax, 0x100
je 0x4a0d74
mov byte [esp + 0x16], 0
jmp 0x4a0d74
test edi, edi
je 0x4a0baf
mov eax, dword [edi + 4]
movsx esi, word [eax + edx*2]
mov eax, dword [edi + 0x1c]
mov al, byte [edx + eax]
mov byte [esp + 0x17], al
mov eax, dword [edi + 0xc]
movsx eax, word [eax + 0x20]
mov dword [esp + 0x28], esi
cmp esi, eax
jne 0x4a0bbb
jmp 0x4a0bb4
mov byte [esp + 0x17], 0
or esi, 0xffffffff
mov dword [esp + 0x28], esi
cmp byte [esp + 0x16], 0
je 0x4a0bdf
test esi, esi
jl 0x4a0bdf
cmp edx, ecx
jl 0x4a0bdf
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + 4]
lea edx, [esi + esi*2]
cmp byte [eax + edx*8 + 0x14], 0
jne 0x4a0bdf
mov byte [esp + 0x16], 0
mov ebp, dword [esp + 0x98]
xor esi, esi
mov bl, 1
xor edi, edi
lea esp, [esp]
cmp esi, dword [esp + 0x34]
jge 0x4a0cbc
mov eax, 1
xor edx, edx
mov ecx, esi
call fcn.00528330
and eax, dword [esp + 0x18]
and edx, dword [esp + 0x1c]
or eax, edx
jne 0x4a0cb0
mov ecx, dword [ebp + 4]
mov ecx, dword [edi + ecx]
mov eax, ecx
test eax, eax
je 0x4a0c48
mov edx, dword [eax + 4]
test edx, 0x1000
je 0x4a0c48
test edx, 0x40000
je 0x4a0c41
mov edx, dword [eax + 0x14]
mov eax, dword [edx + 4]
mov eax, dword [eax]
jmp 0x4a0c44
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4a0c24
test dword [esp + 0xa0], 0x300
jne 0x4a0c57
xor bl, bl
cmp byte [eax], 0x9a
jne 0x4a0cb0
mov edx, dword [esp + 0x30]
cmp dword [eax + 0x1c], edx
jne 0x4a0cb0
movsx edx, word [eax + 0x20]
mov eax, dword [esp + 0x28]
cmp edx, eax
jne 0x4a0cb0
test eax, eax
jl 0x4a0ce7
mov eax, dword [esp + 0x94]
mov edx, dword [eax]
push edx
call fcn.00469360
add esp, 4
test eax, eax
jne 0x4a0c92
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x20]
mov ecx, dword [esp + 0x3c]
mov edx, dword [edx + ecx*4]
mov eax, dword [eax]
push edx
push eax
call fcn.0043e190
add esp, 8
test eax, eax
je 0x4a0ce7
inc esi
add edi, 0x18
test bl, bl
jne 0x4a0bf0
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4a0ccd
movzx edx, word [esp + 0x54]
cmp eax, edx
jge 0x4a0cd2
mov byte [esp + 0x16], 0
cmp byte [esp + 0x23], 0
je 0x4a0d86
mov byte [esp + 0x16], 1
jmp 0x4a0d91
test dword [esp + 0xa0], 0x100
jne 0x4a0d46
cmp byte [esp + 0x21], 0
je 0x4a0d11
mov al, byte [esp + 0x17]
xor al, byte [esp + 0x22]
mov edx, dword [ebp + 4]
lea ecx, [esi + esi*2]
cmp al, byte [edx + ecx*8 + 0xc]
jne 0x4a0cbc
jmp 0x4a0d46
mov ecx, dword [ebp + 4]
lea eax, [esi + esi*2]
mov al, byte [ecx + eax*8 + 0xc]
xor al, byte [esp + 0x17]
mov byte [esp + 0x22], al
je 0x4a0d41
mov ecx, dword [esp + 0x38]
mov eax, 1
xor edx, edx
call fcn.00528330
mov ecx, dword [esp + 0xac]
or dword [ecx], eax
or dword [ecx + 4], edx
mov byte [esp + 0x21], 1
cmp dword [esp + 0x28], 0
jge 0x4a0d52
mov byte [esp + 0x23], 1
mov eax, 1
xor edx, edx
mov ecx, esi
call fcn.00528330
or dword [esp + 0x18], eax
or dword [esp + 0x1c], edx
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x64]
inc edx
cmp edx, esi
mov dword [esp + 0x3c], edx
jl 0x4a0b50
jmp 0x4a0cd2
cmp byte [esp + 0x16], 0
je 0x4a0ea9
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 8]
or dword [esp + 0x48], ecx
mov edx, dword [eax + 0xc]
or dword [esp + 0x4c], edx
xor ecx, ecx
cmp dword [esp + 0x34], ecx
mov dword [esp + 0x24], ecx
jle 0x4a0ea9
mov dword [esp + 0x30], ecx
mov eax, 1
xor edx, edx
call fcn.00528330
mov ecx, edx
mov ebx, eax
and eax, dword [esp + 0x18]
mov dword [esp + 0x8c], ecx
and ecx, dword [esp + 0x1c]
or eax, ecx
jne 0x4a0e91
mov eax, dword [esp + 0x98]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x30]
mov esi, dword [edx + ecx]
mov eax, dword [esp + 0x94]
add eax, 0x44
push esi
push eax
call fcn.0049d220
mov edi, eax
mov ebp, edx
mov ecx, edi
add esp, 8
or ecx, ebp
jne 0x4a0e6e
xor eax, eax
lea edx, [esp + 0x6c]
push esi
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
push edx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov byte [esp + 0x88], 1
mov dword [esp + 0x74], 0x46ace0
mov dword [esp + 0x78], 0x46adf0
mov dword [esp + 0x8c], eax
call fcn.004674e0
add esp, 8
cmp byte [esp + 0x80], 0
je 0x4a0e91
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
not eax
not ecx
and eax, edi
and ecx, ebp
or eax, ecx
jne 0x4a0e91
mov eax, dword [esp + 0x8c]
or dword [esp + 0x18], ebx
or dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x24]
add dword [esp + 0x30], 0x18
inc ecx
cmp ecx, dword [esp + 0x34]
mov dword [esp + 0x24], ecx
jl 0x4a0db7
inc dword [esp + 0x38]
cmp byte [esp + 0x16], 0
jne 0x4a0912
jmp 0x4a0ec0
cmp byte [edx + 0x1d], 0
jne 0x4a0ed4
mov ecx, dword [esp + 0x58]
cmp dword [esp + 0x18], ecx
jne 0x4a0ee3
mov edx, dword [esp + 0x5c]
cmp dword [esp + 0x1c], edx
jne 0x4a0ee3
mov al, byte [esp + 0x68]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
cmp byte [esp + 0x16], 0
jne 0x4a0f42
mov ebx, dword [esp + 0x34]
dec ebx
test ebx, ebx
jle 0x4a08b7
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.00528330
add eax, 0xffffffff
adc edx, 0xffffffff
mov ecx, eax
mov esi, edx
and ecx, edi
and esi, ebp
cmp ecx, eax
jne 0x4a0f23
cmp esi, edx
je 0x4a0f35
dec ebx
test ebx, ebx
jg 0x4a0eff
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
mov al, bl
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
pop edi
pop esi
pop ebp
or al, 0xff
pop ebx
add esp, 0x80
ret