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

Disassembly:
sub esp, 0x10
push ebx
push ebp
mov ebp, edx
push esi
mov esi, ecx
mov cl, byte [ebp + 1]
xor eax, eax
mov dword [ebp + 0x1c], eax
mov byte [ebp], al
mov byte [esi + 0x1c], cl
mov ecx, dword [ebp + 0x20]
push edi
cmp ecx, eax
je 0x4a2599
mov dword [esi + 0x78], ecx
mov edx, dword [ebp + 0x24]
mov dword [esi + 0x7c], edx
mov ecx, dword [ebp + 0x18]
cmp ecx, dword [esi + 0x80]
ja 0x4a2877
jmp 0x4a25b2
xor eax, eax
cmp dword [esi], 8
jne 0x4a2627
cmp dword [ebp + 0x20], eax
jne 0x4a25d7
mov edx, dword [ebp + 0x18]
cmp edx, dword [esi + 0x80]
jne 0x4a2877
mov dword [esi + 0x80], eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x18], eax
lea ecx, [esi + 0x40]
mov dword [esi], eax
mov dword [esi + 4], eax
mov word [esi + 0x1a], 0
mov byte [esi + 0x1d], 0
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], eax
call fcn.0049ae40
mov dword [esi + 0x84], 1
mov dword [esi + 0x88], 4
mov dword [esi + 0x8c], 8
mov word [esi + 0x92], 1
mov dword [esi + 0x9c], 0
xor eax, eax
mov ebx, dword [esi + 0x80]
mov edi, dword [esi + 0x7c]
cmp dword [ebp + 0x20], eax
jne 0x4a2675
cmp edi, eax
je 0x4a2675
cmp ebx, edi
jb 0x4a267d
cmp byte [esi + 0x1d], 0
je 0x4a2675
cmp dword [ebp + 0x18], edi
jb 0x4a2877
sub ebx, edi
je 0x4a2669
cmp ebx, edi
jae 0x4a2877
mov eax, dword [esi + 0x78]
push ebx
lea ecx, [eax + edi]
push ecx
push eax
call sub.MSVCRT.dll_memmove
add esp, 0xc
mov dword [esi + 0x80], ebx
sub dword [ebp + 0x18], edi
mov dword [ebp + 0x14], ebx
cmp ebx, edi
ja 0x4a2877
sub edi, ebx
push edi
push ebp
mov eax, esi
call fcn.004a20e0
cmp dword [ebp + 0x20], 0
jne 0x4a2694
mov edx, dword [esi + 0x78]
mov dword [ebp + 0x10], edx
mov ecx, dword [esi + 0x80]
mov dword [ebp + 0x14], ecx
test eax, eax
jne 0x4a27d3
cmp dword [esi], 5
jne 0x4a2884
mov dword [esp + 0x10], eax
cmp dword [esi + 0x24], eax
jne 0x4a28b5
movzx ebx, byte [esi + 0x16]
mov edx, dword [esi + 0x34]
mov eax, dword [esi + 0x30]
mov ecx, edx
mov edi, eax
mov dword [esp + 0x1c], ecx
test bl, 0x20
jne 0x4a270d
movzx ecx, byte [esi + 0x17]
mov eax, ecx
and eax, 7
add eax, 8
shr ecx, 3
cdq
add ecx, 7
call fcn.004a5510
test bl, 0xe0
je 0x4a26fb
cmp dword [esp + 0x1c], edx
jb 0x4a2709
ja 0x4a26fb
cmp edi, eax
jbe 0x4a2709
mov edi, eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], 1
mov ecx, dword [esp + 0x1c]
cmp dword [ebp + 0x7c], edx
ja 0x4a271f
jb 0x4a2719
cmp dword [ebp + 0x78], eax
jae 0x4a271f
mov dword [ebp + 0x78], eax
mov dword [ebp + 0x7c], edx
cmp dword [ebp + 0x84], ecx
ja 0x4a273d
jb 0x4a2731
cmp dword [ebp + 0x80], edi
jae 0x4a273d
mov dword [ebp + 0x80], edi
mov dword [ebp + 0x84], ecx
test edx, edx
ja 0x4a28b5
jb 0x4a2752
cmp eax, 0x80000000
ja 0x4a28b5
xor ebx, ebx
mov dword [esp + 0x14], edi
cmp edi, edi
jne 0x4a27ce
cmp ebx, ecx
jne 0x4a27ce
cmp edx, ebx
ja 0x4a276d
jb 0x4a276f
cmp eax, 0x20000
jb 0x4a276f
mov eax, edi
mov dword [esi + 0x98], eax
call fcn.004a1d10
cmp eax, ebx
jne 0x4a27d3
cmp dword [ebp + 0x20], ebx
je 0x4a278b
mov byte [esi + 0x1d], bl
jmp 0x4a2862
mov edx, dword [esi + 0x80]
cmp edx, dword [ebp + 0x18]
jne 0x4a2877
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x80], ebx
mov dword [ebp + 0x18], ebx
mov eax, dword [esi + 0x80]
mov dword [ebp + 0x14], eax
cmp ecx, ebx
je 0x4a27db
lea ebx, [edi + 0x20080]
and ebx, 0xfffe0000
cmp ebx, edi
jb 0x4a27ce
lea edi, [ebx + 0x20000]
cmp edi, ebx
jae 0x4a27df
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov ebx, dword [esp + 0x14]
cmp edi, 0x1000
jae 0x4a27ec
mov edi, 0x1000
mov eax, dword [esi + 0x64]
cmp edi, eax
jbe 0x4a2856
test eax, eax
je 0x4a2837
test ecx, ecx
jne 0x4a2807
cmp edi, 0x100000
jae 0x4a2807
xor edx, edx
jmp 0x4a280c
mov edx, 0x40000
neg ecx
sbb ecx, ecx
and ecx, 5
add ecx, 0xc
cmp ecx, 0x20
jae 0x4a2837
jmp 0x4a2820
mov eax, 1
shl eax, cl
add eax, edx
cmp eax, edi
jae 0x4a2835
inc ecx
cmp ecx, 0x20
jb 0x4a2820
jmp 0x4a2837
mov edi, eax
call fcn.004a1c60
mov ecx, dword [esi + 0x70]
mov eax, dword [ecx]
mov edx, edi
call eax
mov dword [esi + 0x68], eax
test eax, eax
je 0x4a27ce
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x78], eax
mov dword [esi + 0x64], edi
mov edx, dword [esi + 0x78]
mov dword [esi + 0x7c], ebx
mov dword [ebp + 0x10], edx
mov byte [esi + 0x1d], cl
mov dword [esi], 6
mov eax, dword [ebp + 0x18]
cmp eax, dword [esi + 0x80]
jbe 0x4a25b0
pop edi
pop esi
pop ebp
mov eax, 0xb
pop ebx
add esp, 0x10
ret
cmp dword [ebp + 0x20], 0
jne 0x4a28ab
cmp byte [ebp], 1
mov eax, dword [esi + 0x80]
je 0x4a28a5
cmp byte [esi + 0x1d], 0
je 0x4a28ab
mov esi, dword [esi + 0x7c]
cmp eax, esi
jb 0x4a28ab
mov eax, esi
sub eax, dword [ebp + 0x18]
mov dword [ebp + 0x1c], eax
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
add esp, 0x10
ret