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

Disassembly:
sub esp, 0x100
xor ecx, ecx
mov dword [esp + 0x30], 0
push ebx
mov dword [esp + 8], ecx
xor bl, bl
mov dword [esp + 0xf4], ecx
xor eax, eax
xor cl, cl
mov byte [esp + 5], bl
mov ebx, dword [esp + 0x110]
xor edx, edx
mov byte [esp + 6], cl
mov byte [esp + 7], cl
mov byte [esp + 4], cl
mov ecx, dword [esp + 0x118]
push ebp
mov ebp, dword [esp + 0x10c]
mov dword [esp + 0xf4], eax
lea eax, [ebx + ecx]
mov dword [esp + 0x34], edx
push esi
mov esi, eax
mov dword [esp + 0x104], eax
push edi
xor edi, edi
mov dword [esp + 0x10c], edi
lea eax, [esi - 1]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x120]
test ebp, ebp
jne 0x4a8950
cmp dword [esp + 0x118], edx
jne 0x4a8950
test ebx, ebx
jne 0x4a8950
cmp eax, 0xfffffc19
jne 0x4a8950
cmp ecx, eax
jne 0x4a8950
push ebp
push ebp
push ebp
push ebp
push ebp
push ebp
push ebp
call fcn.0049aa60
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret
mov edx, dword [esp + 0x128]
test edx, 0xe20f5a6f
je 0x4a896f
pop edi
pop esi
pop ebp
mov eax, 0xfffffffd
pop ebx
add esp, 0x100
ret
test ebp, ebp
je 0x4a96ea
test ebx, ebx
je 0x4a96ea
mov ebx, dword [esp + 0x12c]
mov edi, dword [esp + 0x130]
test ebx, ebx
jne 0x4a8999
test edi, edi
jg 0x4a96ea
test edi, edi
jns 0x4a89ad
pop edi
pop esi
pop ebp
mov eax, 0xfffffff1
pop ebx
add esp, 0x100
ret
test eax, eax
jns 0x4a89c1
pop edi
pop esi
pop ebp
mov eax, 0xffffffe0
pop ebx
add esp, 0x100
ret
test ecx, ecx
js 0x4a96da
cmp ecx, eax
jg 0x4a96da
mov ecx, dword [ebp]
cmp ecx, 0x50435245
je 0x4a89fa
pop edi
pop esi
cmp ecx, 0x45524350
mov eax, 0xfffffffc
mov edx, 0xffffffe3
pop ebp
cmove eax, edx
pop ebx
add esp, 0x100
ret
test byte [ebp + 0xc], 1
jne 0x4a8a10
pop edi
pop esi
pop ebp
mov eax, 0xffffffe4
pop ebx
add esp, 0x100
ret
mov ecx, dword [ebp + 8]
mov eax, 0
and ecx, 0x800
mov dword [esp + 0x34], ecx
setne al
mov dword [esp + 0x20], eax
mov dword [esp + 0x90], eax
test edx, 0x8000000
je 0x4a8a3f
mov eax, 2
jmp 0x4a8a47
mov eax, edx
shr eax, 0xf
and eax, 1
mov dword [esp + 0xcc], eax
test ecx, ecx
je 0x4a8ae5
test edx, 0x2000
jne 0x4a8ae5
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x124]
push dword [esp + 0x124]
call fcn.004aae80
add esp, 0xc
test eax, eax
je 0x4a8ab7
cmp edi, 2
jl 0x4a8a8f
mov ecx, dword [esp + 0x1c]
mov dword [ebx], ecx
mov dword [ebx + 4], eax
cmp eax, 5
jg 0x4a8aa7
cmp dword [esp + 0xcc], 1
mov eax, 0xffffffe7
jg 0x4a96ef
pop edi
pop esi
pop ebp
mov eax, 0xfffffff6
pop ebx
add esp, 0x100
ret
mov eax, dword [esp + 0x124]
test eax, eax
jle 0x4a8ae5
cmp eax, dword [esp + 0x120]
jge 0x4a8ae5
mov eax, esi
mov al, byte [eax]
and al, 0xc0
cmp al, 0x80
jne 0x4a8ae5
pop edi
pop esi
pop ebp
mov eax, 0xfffffff5
pop ebx
add esp, 0x100
ret
movzx ebx, word [ebp + 0x22]
mov ecx, 0x989680
movzx edi, word [ebp + 0x24]
mov edx, ecx
mov dword [esp + 0x68], edi
mov dword [esp + 0x2c], 0
lea eax, [ebx + ebp]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x74], eax
movzx eax, word [ebp + 0x26]
mov ebp, dword [ebp + 0x30]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x4c], edx
mov dword [esp + 0xec], 0
test eax, eax
je 0x4a8b76
mov ebx, dword [eax]
test bl, 1
je 0x4a8b40
mov ebx, dword [eax + 4]
mov dword [esp + 0x2c], ebx
mov ebx, dword [eax]
test bl, 2
je 0x4a8b4c
mov ecx, dword [eax + 8]
mov dword [esp + 0x48], ecx
test bl, 0x10
je 0x4a8b58
mov edx, dword [eax + 0x14]
mov dword [esp + 0x4c], edx
test bl, 4
je 0x4a8b6e
mov eax, dword [eax + 0xc]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x118]
test bl, 8
je 0x4a8b76
mov ebp, dword [eax + 0x10]
mov eax, dword [esp + 0x114]
mov ebx, dword [eax + 0xc]
test ebx, 0x2000
mov dword [esp + 0x24], ebx
movzx ebx, word [eax + 0x22]
je 0x4a8ba3
mov eax, dword [eax + 0x10]
cmp eax, ecx
cmovb ecx, eax
mov eax, dword [esp + 0x114]
mov dword [esp + 0x48], ecx
test dword [esp + 0x24], 0x4000
je 0x4a8bb9
mov eax, dword [eax + 0x14]
cmp eax, edx
cmovb edx, eax
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x114]
test ebp, ebp
mov ecx, 0x4ea7b8
mov dword [esp + 0x70], 0
cmovne ecx, ebp
mov dword [esp + 0xa8], 0
mov dword [esp + 0xf4], 0
mov eax, dword [edx + 8]
mov dword [esp + 0x38], eax
or eax, dword [esp + 0x128]
mov dword [esp + 0x104], eax
movzx eax, word [edx + 0x26]
imul edi, eax
mov eax, dword [esp + 0x124]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xf0], 0
mov dword [esp + 0xe8], 0
add edi, ebx
mov dword [esp + 0x7c], ecx
mov ebx, dword [esp + 0x38]
add edi, edx
mov edx, dword [esp + 0x11c]
mov eax, ebx
shr eax, 5
and eax, 1
mov dword [esp + 0xb8], edx
add edx, dword [esp + 0x120]
mov dword [esp + 0x9c], eax
mov ebp, edx
mov eax, ebx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x128]
shr eax, 0x1d
and eax, 1
mov dword [esp + 0xb4], edi
mov dword [esp + 0x98], eax
mov eax, ebx
shr eax, 0x19
and eax, 1
mov edi, dword [esp + 0x24]
mov dword [esp + 0x94], eax
mov eax, edx
shr eax, 7
and eax, 1
mov dword [esp + 0xbc], ebp
mov dword [esp + 0x88], eax
mov eax, edx
shr eax, 8
and eax, 1
mov dword [esp + 0x8c], eax
mov eax, edx
shr eax, 0xa
and eax, 1
mov dword [esp + 0xa0], eax
mov eax, edx
shr eax, 0x1c
and eax, 1
mov dword [esp + 0xa4], eax
mov eax, edi
shr eax, 0xc
and eax, 1
mov dword [esp + 0xb0], eax
lea eax, [ecx + 0x100]
mov dword [esp + 0x80], eax
lea eax, [ecx + 0x340]
mov dword [esp + 0x84], eax
mov eax, edx
and eax, 0x1800000
je 0x4a8d72
cmp eax, 0x800000
je 0x4a8d65
cmp eax, 0x1000000
jne 0x4a8dba
mov dword [esp + 0xac], 0
test edx, 0x700000
mov eax, edx
cmove eax, ebx
and eax, 0x700000
cmp eax, 0x300000
ja 0x4a8dac
je 0x4a8d92
test eax, eax
je 0x4a8d4b
cmp eax, 0x100000
je 0x4a8d8b
cmp eax, 0x200000
jne 0x4a8dba
mov eax, 0xa
xor ecx, ecx
mov byte [esp + 0x78], al
mov dword [esp + 0x5c], ecx
mov ecx, 1
mov dword [esp + 0x60], ecx
jmp 0x4a8dda
mov dword [esp + 0xac], 1
jmp 0x4a8d20
test ebx, 0x1800000
je 0x4a8d15
mov eax, ebx
shr eax, 0x17
and eax, 1
mov dword [esp + 0xac], eax
jmp 0x4a8d20
mov eax, 0xd
jmp 0x4a8d50
mov ecx, 2
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], ecx
mov word [esp + 0x78], 0xa0d
jmp 0x4a8dda
cmp eax, 0x400000
je 0x4a8dd1
cmp eax, 0x500000
je 0x4a8dca
pop edi
pop esi
pop ebp
mov eax, 0xffffffe9
pop ebx
add esp, 0x100
ret
mov ecx, 2
jmp 0x4a8dd6
mov ecx, 1
mov dword [esp + 0x5c], ecx
cmp dword [esp + 0xcc], 0
je 0x4a8dfc
test edi, 0x200
je 0x4a8dfc
pop edi
pop esi
pop ebp
mov eax, 0xfffffff3
pop ebx
add esp, 0x100
ret
mov eax, 0x55555556
imul dword [esp + 0x130]
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ebx, [eax + eax*2]
mov eax, 0x55555556
lea ecx, [ebx + ebx]
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x114]
movzx eax, word [eax + 0x20]
test ax, ax
je 0x4a8e8d
mov ecx, eax
mov eax, 0x55555556
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jl 0x4a8e8d
inc ecx
lea ebx, [ecx + ecx*2]
lea eax, [ebx*4]
push eax
call dword [0x5077d8]
mov edi, eax
add esp, 4
mov dword [esp + 0x50], edi
test edi, edi
jne 0x4a8e78
lea eax, [edi - 6]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret
mov ebp, dword [esp + 0xbc]
mov dword [esp + 0x40], 1
mov dword [esp + 0x28], edi
jmp 0x4a8e9e
mov eax, dword [esp + 0x12c]
mov edi, eax
mov dword [esp + 0x50], edi
mov dword [esp + 0x28], eax
lea ecx, [ebx + ebx]
mov dword [esp + 0x54], ebx
mov eax, 0x55555556
mov dword [esp + 0xd4], 0
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4a8f39
lea ecx, [eax + ebx*4]
mov eax, dword [esp + 0x114]
mov edx, ecx
movzx eax, word [eax + 0x1e]
shl eax, 2
sub edx, eax
mov eax, dword [esp + 0x28]
add eax, 8
cmp edx, eax
cmovb edx, eax
sub ecx, 4
cmp ecx, edx
jb 0x4a8f0a
mov dword [ecx], 0xffffffff
sub ecx, 4
cmp ecx, edx
jae 0x4a8ef2
mov ebp, dword [esp + 0xbc]
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0x130]
test eax, eax
jle 0x4a8f26
mov dword [edi], 0xffffffff
mov ebp, dword [esp + 0xbc]
mov edi, dword [esp + 0x50]
cmp eax, 1
jle 0x4a8f39
mov dword [edi + 4], 0xffffffff
mov ebp, dword [esp + 0xbc]
test byte [esp + 0x104], 0x10
mov edx, dword [esp + 0x114]
jne 0x4a8fa0
mov eax, dword [edx + 0xc]
test al, 0x10
je 0x4a8f7e
mov bl, byte [edx + 0x18]
mov ecx, 1
mov dword [esp + 0x14], ecx
mov cl, bl
mov byte [esp + 0x11], bl
mov byte [esp + 0x12], cl
test al, 0x20
je 0x4a8fa0
mov eax, dword [esp + 0x80]
movzx ecx, bl
mov bl, byte [ecx + eax]
mov byte [esp + 0x11], bl
jmp 0x4a8fa0
test dword [esp + 0x24], 0x100
jne 0x4a8fa0
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4a8fa0
test byte [eax + 4], 1
je 0x4a8fa0
add eax, 8
mov dword [esp + 0xfc], eax
mov eax, dword [edx + 0xc]
test al, 0x40
je 0x4a8fd4
mov bl, byte [edx + 0x1a]
mov dword [esp + 0x100], 1
mov cl, bl
mov byte [esp + 0x10], bl
mov byte [esp + 0x13], cl
test al, al
jns 0x4a8fd4
mov eax, dword [esp + 0x80]
movzx ecx, bl
mov al, byte [ecx + eax]
mov byte [esp + 0x10], al
mov ebx, dword [esp + 0x18]
nop dword [eax + eax]
test dword [esp + 0x38], 0x40000
mov edi, ebx
je 0x4a90db
cmp dword [esp + 0x34], 0
mov edi, esi
je 0x4a9074
cmp esi, ebp
jae 0x4a90db
mov edx, dword [esp + 0x5c]
test edx, edx
je 0x4a9036
cmp edi, ebp
jae 0x4a905c
push dword [esp + 0x20]
lea eax, [esp + 0x64]
push eax
push ebp
push edx
push edi
call fcn.004aab40
add esp, 0x14
test eax, eax
jne 0x4a90d4
mov ebp, dword [esp + 0xbc]
mov edx, dword [esp + 0x5c]
jmp 0x4a905c
mov ecx, dword [esp + 0x60]
mov eax, ebp
sub eax, ecx
cmp edi, eax
ja 0x4a905c
mov al, byte [edi]
cmp al, byte [esp + 0x78]
jne 0x4a905c
cmp ecx, 1
je 0x4a90d4
mov al, byte [edi + 1]
cmp al, byte [esp + 0x79]
je 0x4a90d4
inc edi
cmp edi, ebx
jae 0x4a906e
mov al, byte [edi]
and al, 0xc0
cmp al, 0x80
jne 0x4a906e
inc edi
cmp edi, ebx
jb 0x4a9061
cmp edi, ebp
jb 0x4a9005
jmp 0x4a90d4
cmp esi, ebp
jae 0x4a90db
mov edx, dword [esp + 0x5c]
nop dword [eax]
test edx, edx
je 0x4a90ad
cmp edi, ebp
jae 0x4a90cf
push dword [esp + 0x20]
lea eax, [esp + 0x64]
push eax
push ebp
push edx
push edi
call fcn.004aab40
add esp, 0x14
test eax, eax
jne 0x4a90d4
mov ebp, dword [esp + 0xbc]
mov edx, dword [esp + 0x5c]
jmp 0x4a90cf
mov ecx, dword [esp + 0x60]
mov eax, ebp
sub eax, ecx
cmp edi, eax
ja 0x4a90cf
mov al, byte [edi]
cmp al, byte [esp + 0x78]
jne 0x4a90cf
cmp ecx, 1
je 0x4a90d4
mov al, byte [edi + 1]
cmp al, byte [esp + 0x79]
je 0x4a90d4
inc edi
cmp edi, ebp
jb 0x4a9080
mov edx, dword [esp + 0x114]
mov eax, dword [edx + 8]
or eax, dword [esp + 0x128]
mov ebp, dword [esp + 0x14]
test eax, 0x4000000
jne 0x4a92a0
test ebp, ebp
je 0x4a9142
cmp esi, edi
jae 0x4a92a0
mov cl, byte [esp + 0x12]
mov dl, byte [esp + 0x11]
cmp cl, dl
je 0x4a9130
nop dword [eax]
mov al, byte [esi]
cmp al, cl
je 0x4a92a0
cmp al, dl
je 0x4a92a0
inc esi
cmp esi, edi
jb 0x4a9110
jmp 0x4a92a0
cmp byte [esi], cl
je 0x4a92a0
inc esi
cmp esi, edi
jb 0x4a9130
jmp 0x4a92a0
test dword [esp + 0x24], 0x100
je 0x4a926a
mov eax, dword [esp + 0x124]
mov ecx, dword [esp + 0xb8]
add eax, ecx
cmp esi, eax
jbe 0x4a92a0
cmp esi, edi
jae 0x4a924a
cmp dword [esp + 0x34], 0
je 0x4a91ef
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x4a91a1
cmp esi, ecx
jbe 0x4a91d5
push dword [esp + 0x20]
lea edx, [esp + 0x64]
push edx
push ecx
push eax
push esi
call fcn.004aaca0
add esp, 0x14
test eax, eax
jne 0x4a924a
jmp 0x4a91ce
mov edx, dword [esp + 0x60]
lea eax, [ecx + edx]
cmp esi, eax
jb 0x4a91d5
mov ecx, esi
sub ecx, edx
mov al, byte [ecx]
cmp al, byte [esp + 0x78]
jne 0x4a91ce
cmp edx, 1
je 0x4a924a
mov al, byte [ecx + 1]
cmp al, byte [esp + 0x79]
je 0x4a924a
mov ecx, dword [esp + 0xb8]
inc esi
cmp esi, edi
jae 0x4a924a
nop word [eax + eax]
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x4a9177
inc esi
cmp esi, edi
jb 0x4a91e0
jmp 0x4a924a
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x4a9215
cmp esi, ecx
jbe 0x4a9245
push dword [esp + 0x20]
lea edx, [esp + 0x64]
push edx
push ecx
push eax
push esi
call fcn.004aaca0
add esp, 0x14
test eax, eax
jne 0x4a924a
jmp 0x4a923a
mov edx, dword [esp + 0x60]
lea eax, [ecx + edx]
cmp esi, eax
jb 0x4a9241
mov ecx, esi
sub ecx, edx
mov al, byte [ecx]
cmp al, byte [esp + 0x78]
jne 0x4a923a
cmp edx, 1
je 0x4a924a
mov al, byte [ecx + 1]
cmp al, byte [esp + 0x79]
je 0x4a924a
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x5c]
inc esi
cmp esi, edi
jb 0x4a91f3
cmp byte [esi - 1], 0xd
jne 0x4a92a0
mov eax, dword [esp + 0x5c]
cmp eax, 1
je 0x4a925e
cmp eax, 2
jne 0x4a92a0
cmp esi, edi
jae 0x4a92a0
cmp byte [esi], 0xa
jne 0x4a92a0
inc esi
jmp 0x4a92a0
mov ebp, dword [esp + 0xfc]
test ebp, ebp
je 0x4a929c
cmp esi, edi
jae 0x4a929c
nop dword [eax]
movzx edx, byte [esi]
mov eax, 1
mov ecx, edx
shr edx, 3
and ecx, 7
shl eax, cl
test byte [edx + ebp], al
jne 0x4a929c
inc esi
cmp esi, edi
jb 0x4a9280
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x114]
mov eax, dword [edi + 8]
or eax, dword [esp + 0x128]
test eax, 0x4000000
jne 0x4a934c
cmp dword [esp + 0xcc], 0
jne 0x4a934c
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4a92e1
test byte [ecx + 4], 2
je 0x4a92e1
mov eax, ebx
sub eax, esi
cmp eax, dword [ecx + 0x28]
jb case.0x4a93dd.996
cmp dword [esp + 0x100], 0
je 0x4a934c
mov eax, ebx
sub eax, esi
cmp eax, 0x3e8
jge 0x4a934c
lea ecx, [esi + ebp]
cmp ecx, dword [esp + 0x30]
jbe 0x4a934c
cmp ecx, ebx
jae case.0x4a93dd.996
mov ah, byte [esp + 0x13]
cmp ah, byte [esp + 0x10]
je 0x4a9330
nop dword [eax]
mov al, byte [ecx]
mov edx, ecx
inc ecx
mov dword [esp + 0x30], edx
cmp al, ah
je 0x4a9348
cmp al, byte [esp + 0x10]
je 0x4a9348
cmp ecx, ebx
jb 0x4a9310
xor ebx, ebx
jmp 0x4a9518
mov al, byte [ecx]
mov edx, ecx
mov dword [esp + 0x30], ecx
inc ecx
cmp al, ah
je 0x4a9348
cmp ecx, ebx
jb 0x4a9330
xor ebx, ebx
jmp 0x4a9518
cmp edx, ebx
jae case.0x4a93dd.996
push 0
push 0
lea eax, [esp + 0x4c]
mov dword [esp + 0xc8], esi
push eax
push 2
push esi
push dword [esp + 0xc8]
mov dword [esp + 0xe0], esi
push esi
mov dword [esp + 0x60], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0x88], 0
call fcn.0049aa60
add esp, 0x1c
mov ebx, eax
cmp dword [esp + 0xa8], 0
je 0x4a93c4
cmp dword [esp + 0x3c], 0
jne 0x4a93c4
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x10c], esi
test ebx, ebx
jg case.default.0x4a93dd
je case.0x4a93dd.995
lea eax, [ebx + 0x3e4]
cmp eax, 4
ja case.default.0x4a93dd
jmp dword [eax*4 + 0x4a96fc]
mov eax, dword [esp + 0x6c]
mov edi, esi
mov dword [esp + 0x70], eax
jmp 0x4a9422
mov edi, dword [esp + 0xc0]
cmp edi, esi
ja 0x4a9422
cmp dword [esp + 0x34], 0
lea edi, [esi + 1]
mov dword [esp + 0x70], 0
je 0x4a9422
mov ecx, dword [esp + 0x18]
cmp edi, ecx
jae 0x4a9422
mov al, byte [edi]
and al, 0xc0
cmp al, 0x80
jne 0x4a9422
inc edi
cmp edi, ecx
jb 0x4a9415
mov eax, dword [esp + 0x5c]
xor ebx, ebx
test dword [esp + 0x38], 0x40000
mov ebp, dword [esp + 0xbc]
je 0x4a946c
test eax, eax
je 0x4a94d8
cmp esi, ebp
jae 0x4a946c
push dword [esp + 0x20]
lea ecx, [esp + 0x64]
push ecx
push ebp
push eax
push esi
call fcn.004aab40
add esp, 0x14
test eax, eax
jne 0x4a9518
mov ebp, dword [esp + 0xbc]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
test byte [esp + 0x104], 0x10
mov esi, edi
jne 0x4a9518
cmp edi, dword [esp + 0x18]
ja 0x4a9518
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x114]
cmp edi, dword [esp + 0x108]
jbe 0x4a94c8
cmp byte [edi - 1], 0xd
jne 0x4a94c8
cmp edi, ebx
jae 0x4a94c8
cmp byte [edi], 0xa
jne 0x4a94c8
test dword [edx + 0xc], 0x800
jne 0x4a94c8
cmp eax, 1
je 0x4a94c5
cmp eax, 2
je 0x4a94c5
cmp ecx, 2
jne 0x4a94c8
lea esi, [edi + 1]
mov dword [esp + 0xf0], 0
jmp 0x4a8fe0
mov ecx, dword [esp + 0x60]
mov eax, ebp
sub eax, ecx
cmp esi, eax
ja 0x4a94fa
mov al, byte [esi]
cmp al, byte [esp + 0x78]
jne 0x4a94fa
cmp ecx, 1
je 0x4a9518
mov al, byte [esi + 1]
cmp al, byte [esp + 0x79]
je 0x4a9518
mov eax, dword [esp + 0x5c]
jmp 0x4a9470
cmp ebx, 1
je 0x4a95bc
cmp ebx, 0xfffffc19
je 0x4a95bc
cmp dword [esp + 0x40], 0
je 0x4a952c
push dword [esp + 0x50]
call dword [0x5077dc]
add esp, 4
test ebx, ebx
je 0x4a9542
cmp ebx, 0xfffffff4
je 0x4a9542
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x100
ret
mov edi, dword [esp + 0x10c]
test edi, edi
je 0x4a958a
mov ecx, dword [esp + 0x130]
cmp ecx, 1
jle 0x4a9583
mov eax, dword [esp + 0x12c]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x11c]
sub edx, ebx
mov dword [eax], edx
mov edx, dword [esp + 0x120]
mov dword [eax + 4], edx
cmp ecx, 2
jle 0x4a9583
sub edi, ebx
mov dword [eax + 8], edi
mov eax, 0xfffffff4
jmp 0x4a958d
or eax, 0xffffffff
mov edx, dword [esp + 0x118]
test edx, edx
je 0x4a96ef
test byte [edx], 0x20
je 0x4a96ef
mov edx, dword [edx + 0x18]
mov ecx, dword [esp + 0xf4]
pop edi
pop esi
pop ebp
mov dword [edx], ecx
pop ebx
add esp, 0x100
ret
cmp dword [esp + 0x40], 0
mov ebx, dword [esp + 0x1c]
je 0x4a960d
mov esi, dword [esp + 0x50]
cmp ebx, 4
jl 0x4a95ef
lea eax, [ebx*4 - 8]
push eax
lea eax, [esi + 8]
push eax
mov eax, dword [esp + 0x134]
add eax, 8
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp dword [esp + 0xd0], ebx
jle 0x4a9603
or dword [esp + 0xd4], 0x10000
push esi
call dword [0x5077dc]
add esp, 4
test dword [esp + 0xd4], 0x10000
mov ecx, dword [esp + 0xd0]
je 0x4a9629
cmp ecx, ebx
jl 0x4a9629
xor esi, esi
jmp 0x4a9632
mov eax, ecx
cdq
sub eax, edx
mov esi, eax
sar esi, 1
movzx edi, word [edi + 0x1e]
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x12c]
sar eax, 1
cmp eax, edi
jg 0x4a9682
test edx, edx
je 0x4a9682
lea eax, [edi*2 + 2]
cmp eax, dword [esp + 0x130]
lea edi, [edx + ecx*4]
cmovg eax, dword [esp + 0x130]
xor ebx, ebx
lea eax, [edx + eax*4]
mov ecx, eax
sub ecx, edi
add ecx, 3
shr ecx, 2
cmp edi, eax
cmova ecx, ebx
test ecx, ecx
je 0x4a9682
or eax, 0xffffffff
rep stosd dword es:[edi], eax
cmp dword [esp + 0x130], 2
jge 0x4a9690
xor esi, esi
jmp 0x4a96b1
mov eax, dword [esp + 0xc0]
sub eax, dword [esp + 0xb8]
mov dword [edx], eax
mov eax, dword [esp + 0xc4]
sub eax, dword [esp + 0xb8]
mov dword [edx + 4], eax
mov edx, dword [esp + 0x118]
test edx, edx
je 0x4a96cd
test byte [edx], 0x20
je 0x4a96cd
mov edx, dword [edx + 0x18]
mov ecx, dword [esp + 0xf0]
mov dword [edx], ecx
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffe8
pop ebx
add esp, 0x100
ret
mov eax, 0xfffffffe
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret