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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x2c]
cmp eax, dword [ecx + 8]
jbe 0x4a2e55
sub esp, 0xac
mov eax, dword [esp + 0xb4]
test eax, eax
sete cl
mov edx, dword [esp + 0xb8]
test edx, edx
sete bl
and ebx, ecx
test bl, bl
jne 0x4a2e20
mov ecx, dword [esp + 0xbc]
test ecx, ecx
jg 0x4a260e
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00499370
mov ecx, dword [esp + 0xbc]
mov eax, ecx
neg ecx
cmp dword [esp + 8], ecx
jge 0x4a2d7d
mov ecx, eax
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0xb4]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0xc], ecx
call fcn.004a2ec0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
test eax, eax
je 0x4a2d48
mov dword [esp + 0x5c], eax
mov dword [esp + 0x48], esi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], edi
mov dword [esp + 0x40], ebp
mov dword [esp + 0x4c], edx
mov dword [esp + 0x44], ecx
neg eax
mov dword [esp], eax
call fcn.004a2e60
mov eax, dword [esp + 4]
mov dword [esp + 0xa8], eax
lea ecx, [eax + 1]
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0xc0]
lea ebx, [0x6bc440]
cmp edx, ebx
jne 0x4a2730
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov edx, dword [esp + 0x5c]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004a3430
mov eax, dword [esp + 0xc]
mov dword [esp + 0x68], eax
movzx ecx, byte [esp + 0x14]
mov byte [esp + 0x30], cl
mov edx, dword [esp + 0x48]
mov dword [esp], edx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x34]
mov dword [esp + 8], ebp
call fcn.004a3430
mov eax, dword [esp + 0xc]
mov dword [esp + 0x74], eax
movzx ecx, byte [esp + 0x14]
mov byte [esp + 0x31], cl
mov edx, dword [esp + 0x38]
mov dword [esp], edx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 8], ebx
call fcn.004a3430
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
movzx edx, byte [esp + 0x14]
xor ebx, ebx
mov ebp, dword [esp + 0x68]
xor esi, esi
mov edi, dword [esp + 0x74]
xor ebx, ebx
mov dword [esp + 0x64], ebx
jmp 0x4a27ef
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov edx, dword [esp + 0x40]
mov dword [esp], edx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
call fcn.004a3550
movzx eax, byte [esp + 0x1c]
mov byte [esp + 0x30], al
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x6c], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x70], edx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x48]
mov dword [esp], ebp
mov esi, dword [esp + 0x5c]
mov dword [esp + 8], esi
mov edi, dword [esp + 0x34]
mov dword [esp + 0xc], edi
call fcn.004a3550
movzx eax, byte [esp + 0x1c]
mov byte [esp + 0x31], al
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x7c], edx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x38]
mov dword [esp], ebp
mov esi, dword [esp + 0x5c]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0xc], esi
call fcn.004a3550
mov ecx, dword [esp + 0x18]
movzx edx, byte [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x6c]
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0x70]
test ecx, ecx
jge 0x4a2e3c
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x34]
cmp eax, 0x37
jle 0x4a2814
xor edx, edx
xor edx, edx
mov byte [esp + 0x31], dl
xor edx, edx
mov byte [esp + 0x30], dl
xor edx, edx
mov dword [esp + 0x7c], esi
mov dword [esp + 0x78], edi
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], ebx
mov eax, dword [esp + 0xa8]
add eax, 0x19
cmp eax, 0x18
jb 0x4a283d
movzx eax, byte [esp + 0x31]
jmp 0x4a28f6
mov dword [esp + 0x5c], ecx
mov byte [esp + 0x2f], dl
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x34]
neg eax
mov dword [esp + 0xa4], eax
mov dword [esp + 8], eax
call fcn.004a3750
movzx eax, byte [esp + 0xc]
mov byte [esp + 0x33], al
mov ecx, dword [esp + 0x4c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 8], ecx
call fcn.004a3750
movzx eax, byte [esp + 0xc]
mov byte [esp + 0x32], al
mov ecx, dword [esp + 0x3c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 8], ecx
call fcn.004a3750
movzx edx, byte [esp + 0xc]
movzx eax, byte [esp + 0x2f]
or edx, eax
movzx eax, byte [esp + 0x32]
movzx ecx, byte [esp + 0x31]
or eax, ecx
movzx ecx, byte [esp + 0x33]
movzx ebx, byte [esp + 0x30]
or ecx, ebx
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x6c]
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x78]
mov byte [esp + 0x30], cl
mov ecx, dword [esp + 0x5c]
mov byte [esp + 0x2f], dl
mov byte [esp + 0x31], al
neg ecx
mov dword [esp + 0xa4], ecx
cmp ecx, 0x20
sbb eax, eax
mov dword [esp + 0xa0], eax
mov edx, 1
shl edx, cl
and edx, eax
mov dword [esp + 0x9c], edx
add edx, 0xffffffff
mov dword [esp + 0x58], edx
lea edx, [ecx - 0x20]
mov dword [esp + 0x98], edx
neg edx
mov dword [esp + 0x94], edx
cmp edx, 0x20
sbb edi, edi
mov dword [esp + 0x90], edi
mov esi, dword [esp + 0x98]
cmp esi, 0x20
sbb eax, eax
mov dword [esp + 0x98], eax
mov ecx, esi
mov ebp, 1
shl ebp, cl
and ebp, eax
mov ecx, edx
mov eax, 1
shr eax, cl
and eax, edi
or eax, ebp
mov ebp, dword [esp + 0x9c]
add ebp, 0xffffffff
adc eax, 0xffffffff
mov dword [esp + 0x8c], eax
mov ebp, ebx
shl ebx, cl
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0x6c]
shr eax, cl
mov ecx, esi
shr ebp, cl
mov esi, dword [esp + 0x98]
and ebp, esi
and ebx, edi
mov esi, dword [esp + 0xa0]
and eax, esi
or eax, ebx
or eax, ebp
mov dword [esp + 0xa0], eax
mov ebx, ecx
mov ecx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x70]
shr ebp, cl
and ebp, esi
mov dword [esp + 0x9c], ebp
mov ecx, edx
mov ebp, dword [esp + 0x7c]
shl ebp, cl
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0x78]
shr eax, cl
and ebp, edi
and eax, esi
or eax, ebp
mov ebp, ecx
mov ecx, ebx
mov edi, dword [esp + 0x7c]
shr edi, cl
mov edx, dword [esp + 0x98]
and edi, edx
or edi, eax
mov dword [esp + 0x98], edi
mov ecx, ebp
mov eax, dword [esp + 0x7c]
shr eax, cl
and eax, esi
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x7c]
and edi, eax
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x78]
and eax, edi
mov dword [esp + 0x50], eax
mov ecx, ebx
mov eax, dword [esp + 0x64]
mov ebx, eax
shr eax, cl
mov ecx, ebp
mov edi, dword [esp + 0x60]
shr edi, cl
and edi, esi
mov ecx, dword [esp + 0x94]
shl ebx, cl
mov ecx, esi
mov esi, dword [esp + 0x90]
and ebx, esi
or ebx, edi
and eax, edx
or eax, ebx
mov edx, ecx
mov ecx, ebp
mov ebx, dword [esp + 0x64]
mov esi, ebx
shr ebx, cl
and ebx, edx
mov edx, dword [esp + 0x58]
mov edi, dword [esp + 0x60]
and edi, edx
mov edx, dword [esp + 0x8c]
and esi, edx
movzx edx, byte [esp + 0x2f]
test dl, dl
je 0x4a2acc
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], ebx
test edi, edi
xchg ebp, ebx
seta bl
xchg ebp, ebx
test esi, esi
sete bl
seta al
and ebx, ebp
or ebx, eax
test dl, dl
mov eax, dword [esp + 0x84]
mov ebp, ecx
mov edx, ebx
mov ebx, dword [esp + 0x80]
jmp 0x4a2ad1
mov edx, 1
je 0x4a2b02
test esi, esi
xchg esi, ebx
sete bl
xchg esi, ebx
test edi, edi
xchg edi, ebx
sete bl
xchg edi, ebx
and edi, esi
xchg edi, eax
test al, al
xchg edi, eax
je 0x4a2b02
mov esi, dword [esp + 0xb4]
test esi, 1
sete dl
and edx, 1
jmp 0x4a2b09
mov esi, dword [esp + 0xb4]
test dl, dl
jne 0x4a2b13
add eax, 0xffffffff
adc ebx, 0xffffffff
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ebx
movzx edx, byte [esp + 0x31]
test dl, dl
je 0x4a2bd6
lea edi, [ecx - 0x21]
mov dword [esp + 0x94], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
cmp edi, 0x20
sbb eax, eax
mov ebx, dword [esp + 0x94]
cmp ebx, 0x20
sbb esi, esi
mov ecx, edi
mov edx, 1
shr edx, cl
mov ecx, ebx
mov ebx, 1
shl ebx, cl
and ebx, esi
and edx, eax
or edx, ebx
mov eax, dword [esp + 0x54]
cmp edx, eax
sete bl
lea ecx, [ebp - 1]
cmp ecx, 0x20
sbb ebp, ebp
mov esi, 1
shl esi, cl
and esi, ebp
mov ebp, dword [esp + 0x50]
cmp esi, ebp
xchg edi, ebx
setb bl
xchg edi, ebx
cmp edx, eax
setb dl
and edi, ebx
or edi, edx
xchg edi, eax
test al, al
xchg edi, eax
je 0x4a2ba8
mov ecx, dword [esp + 0x98]
mov edx, 1
jmp 0x4a2c59
cmp esi, ebp
sete cl
and ecx, ebx
test cl, cl
je 0x4a2bc8
mov ecx, dword [esp + 0x98]
test ecx, 1
setne dl
jmp 0x4a2c59
mov ecx, dword [esp + 0x98]
xor edx, edx
jmp 0x4a2c59
lea edi, [ecx - 1]
cmp edi, 0x20
sbb eax, eax
mov dword [esp + 0x94], eax
add ecx, 0xffffffdf
mov dword [esp + 0x90], ecx
cmp ecx, 0x20
sbb ebp, ebp
neg ecx
mov dword [esp + 0x84], ecx
cmp ecx, 0x20
sbb ebx, ebx
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x54]
shr esi, cl
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x54]
shl eax, cl
and esi, ebp
mov ecx, edi
mov ebp, dword [esp + 0x50]
shr ebp, cl
and eax, ebx
mov ebx, dword [esp + 0x94]
and ebp, ebx
or ebp, eax
or ebp, esi
cmp ebp, 1
sete al
mov ebp, dword [esp + 0x54]
mov esi, ebp
shr ebp, cl
test ebx, ebp
sete bl
and ebx, eax
mov eax, esi
mov ecx, dword [esp + 0x98]
mov ebp, dword [esp + 0x50]
mov edx, ebx
movzx ebx, byte [esp + 0x30]
test bl, bl
je 0x4a2cb9
mov ebx, dword [esp + 0x58]
mov esi, dword [esp + 0x6c]
test esi, ebx
sete bl
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0x70]
test edi, esi
xchg esi, ebx
sete bl
xchg esi, ebx
and esi, ebx
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a2cb9
mov ebx, dword [esp + 0xb4]
test ebx, 1
sete bl
and ebx, 1
test bl, bl
je 0x4a2cb9
movzx ebx, byte [esp + 0x31]
test bl, bl
mov ebx, dword [esp + 0xa0]
mov esi, dword [esp + 0x9c]
jmp 0x4a2cd6
mov ebx, dword [esp + 0xa0]
add ebx, 1
mov esi, dword [esp + 0x9c]
adc esi, 0
movzx edi, byte [esp + 0x31]
xchg edi, eax
test al, al
xchg edi, eax
je 0x4a2cea
test ebp, ebp
xchg ebp, ebx
sete bl
xchg ebp, ebx
test eax, eax
sete al
and eax, ebp
jmp 0x4a2cec
xor eax, eax
mov ebp, dword [esp + 0xb0]
mov dword [esp], ebp
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x14], ecx
mov byte [esp + 0x1c], al
mov byte [esp + 0x1d], dl
call fcn.004a3000
mov eax, dword [esp + 0xb0]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0xa8]
sub ecx, edx
dec ecx
mov dword [eax + 0x10], ecx
add esp, 0xac
ret
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
mov dword [esp + 8], ecx
mov dword [esp + 4], ebp
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], esi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], edi
mov word [esp + 0x1c], 1
call fcn.004a3000
add esp, 0xac
ret
mov dword [esp + 0xa8], ecx
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
cmp ecx, 0x20
sbb eax, eax
mov dword [esp + 0xa0], eax
mov edx, dword [esp + 0xb8]
mov ebx, edx
shr edx, cl
and edx, eax
mov dword [esp + 0x9c], edx
mov dword [esp + 8], edx
lea ebp, [ecx - 0x20]
cmp ebp, 0x20
sbb esi, esi
mov edi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
cmp ebp, 0x20
sbb edx, edx
mov ecx, ebp
mov ebp, ebx
shl ebx, cl
mov ecx, dword [esp + 0xa8]
mov eax, dword [esp + 0xb4]
shr eax, cl
mov ecx, edi
shr ebp, cl
and ebp, esi
and ebx, edx
mov edx, dword [esp + 0xa0]
and eax, edx
or eax, ebx
or eax, ebp
mov dword [esp + 4], eax
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
mov word [esp + 0x1c], 1
call fcn.004a3000
add esp, 0xac
ret
mov eax, dword [esp + 0xb0]
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
add esp, 0xac
ret
lea eax, [0x5ab9c0]
mov dword [esp], eax
lea eax, [0x5f0440]
mov dword [esp + 4], eax
call fcn.00437bb0
nop
call fcn.00463a70
jmp fcn.004a2590