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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14c
mov ecx, dword [ebp + 0x14]
push ebx
push esi
push edi
mov edi, eax
or eax, 0xffffffff
mov dword [esp + 0x20], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0xc]
xor edx, edx
test dword [ebp + 0x18], 0xe20f5a6f
lea esi, [eax + ecx*2]
lea ebx, [esi - 2]
mov dword [esp + 0x30], edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x10], esi
mov dword [esp + 0x28], edx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x18], edi
je 0x486801
lea eax, [edx - 3]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, edx
je 0x4873f4
cmp eax, edx
je 0x4873f4
cmp dword [ebp + 0x1c], edx
jne 0x48681f
cmp dword [ebp + 0x20], edx
jg 0x4873f4
cmp dword [ebp + 0x20], edx
jge 0x486830
mov eax, 0xfffffff1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, edx
jl 0x4873e8
cmp ecx, dword [ebp + 0x10]
jg 0x4873e8
movzx eax, word [edi + 0x18]
movzx ecx, word [edi + 0x1c]
add eax, edi
mov dword [esp + 0x80], eax
movzx eax, word [edi + 0x1a]
mov dword [esp + 0x7c], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x78], ecx
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x24], edx
mov dword [esp + 0x5c], 0x989680
mov dword [esp + 0x60], 0x1770
mov dword [esp + 0xf4], edx
mov dword [esp + 0x14], ecx
cmp eax, edx
je 0x4868c8
mov ecx, dword [eax]
test cl, 1
je 0x486895
mov ebx, dword [eax + 4]
mov dword [esp + 0x24], ebx
test cl, 2
je 0x4868a1
mov ebx, dword [eax + 8]
mov dword [esp + 0x5c], ebx
test cl, 0x10
je 0x4868ad
mov ebx, dword [eax + 0x14]
mov dword [esp + 0x60], ebx
test cl, 4
je 0x4868bc
mov ebx, dword [eax + 0xc]
mov dword [esp + 0xf4], ebx
test cl, 8
je 0x4868c8
mov eax, dword [eax + 0x10]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], edx
jne 0x4868d6
mov dword [esp + 0x14], 0x4b51f8
cmp dword [edi], 0x50435245
je 0x486921
mov ebx, dword [esp + 0x24]
lea ecx, [esp + 0x104]
push ecx
lea eax, [esp + 0x134]
mov edx, edi
call fcn.00487550
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x48690f
mov eax, 0xfffffffc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x24], 0
je 0x486921
lea edx, [esp + 0x104]
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 8]
mov edx, dword [ebp + 0x18]
mov ebx, eax
shr eax, 0x12
and eax, 1
mov dword [esp + 0x38], eax
movzx eax, word [ecx + 0x1c]
or ebx, edx
shr ebx, 4
and ebx, 1
mov dword [esp + 0x3c], ebx
movzx ebx, word [ecx + 0xc]
shr ebx, 3
and ebx, 1
mov dword [esp + 0x34], ebx
movzx ebx, word [ecx + 0x1a]
imul eax, ebx
movzx ebx, word [ecx + 0x18]
add ebx, edi
mov edi, dword [ebp + 0xc]
lea eax, [ebx + eax*2]
mov dword [esp + 0xbc], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0xe0], eax
mov eax, dword [ebp + 0x10]
lea eax, [edi + eax*2]
mov dword [esp + 0xc4], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc0], edi
mov eax, dword [ecx + 8]
shr eax, 5
and eax, 1
mov dword [esp + 0xa8], eax
mov dword [esp + 0x9c], 1
mov eax, dword [ecx + 8]
shr eax, 0x1d
and eax, 1
mov dword [esp + 0xa0], eax
mov eax, dword [ecx + 8]
shr eax, 0x19
and eax, 1
mov dword [esp + 0xa4], eax
mov eax, edx
shr eax, 7
and eax, 1
mov dword [esp + 0x94], eax
mov eax, edx
shr eax, 8
and eax, 1
mov dword [esp + 0x98], eax
mov eax, edx
shr eax, 0xa
and eax, 1
mov dword [esp + 0xac], eax
mov eax, edx
shr eax, 0x1c
and eax, 1
mov dword [esp + 0xb0], eax
test edx, 0x8000000
je 0x486a17
mov eax, 2
jmp 0x486a1f
mov eax, edx
shr eax, 0xf
and eax, 1
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x88], eax
add eax, 0x340
xor ebx, ebx
mov dword [esp + 0x8c], eax
mov eax, edx
and eax, 0x1800000
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xf8], ebx
mov dword [esp + 0xf0], ebx
je 0x486a84
cmp eax, 0x800000
je 0x486a77
cmp eax, 0x1000000
je 0x486a9d
mov eax, 0xffffffe9
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xb8], 1
jmp 0x486aa4
mov eax, dword [ecx + 8]
test eax, 0x1800000
je 0x486a9d
shr eax, 0x17
and eax, 1
mov dword [esp + 0xb8], eax
jmp 0x486aa4
mov dword [esp + 0xb8], ebx
test edx, 0x700000
jne 0x486ab1
mov eax, dword [ecx + 8]
jmp 0x486ab3
mov eax, edx
and eax, 0x700000
cmp eax, 0x300000
ja 0x486b10
je 0x486b09
cmp eax, ebx
je 0x486b09
cmp eax, 0x100000
je 0x486b02
cmp eax, 0x200000
jne 0x486a6b
mov eax, 0xa
mov dword [esp + 0x70], ebx
cmp eax, 0xff
jle 0x486b36
mov ebx, eax
sar ebx, 8
mov byte [esp + 0x84], bl
mov dword [esp + 0x74], 2
mov byte [esp + 0x85], al
xor ebx, ebx
jmp 0x486b45
mov eax, 0xd
jmp 0x486ad8
mov eax, 0xd0a
jmp 0x486ad8
cmp eax, 0x400000
je 0x486b2c
cmp eax, 0x500000
jne 0x486a6b
mov dword [esp + 0x70], 2
jmp 0x486b45
mov dword [esp + 0x70], 1
jmp 0x486b45
mov dword [esp + 0x74], 1
mov byte [esp + 0x84], al
cmp dword [esp + 0xd4], ebx
je 0x486b60
test byte [ecx + 0xc], 1
je 0x486b60
mov eax, 0xfffffff3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test edx, 0x2000
jne 0x486bf7
movzx eax, word [edi]
mov edx, 0xdc00
cmp ax, dx
jb 0x486bb0
mov edx, 0xdfff
cmp ax, dx
ja 0x486bb0
cmp dword [ebp + 0x20], 2
jl 0x486b95
mov eax, dword [ebp + 0x1c]
mov dword [eax], ebx
mov dword [eax + 4], 0xffffffff
xor eax, eax
cmp dword [esp + 0xd4], 1
setle al
dec eax
and eax, 0xfffffff1
add eax, 0xfffffff6
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
cmp eax, ebx
jle 0x486bf7
cmp eax, dword [ebp + 0x10]
jge 0x486bf7
movzx eax, word [esi - 2]
mov edx, 0xd800
cmp ax, dx
jb 0x486bf7
mov edx, 0xdbff
cmp ax, dx
ja 0x486bf7
movzx eax, word [esi]
mov edx, 0xdc00
cmp ax, dx
jb 0x486bf7
mov edx, 0xdfff
cmp ax, dx
ja 0x486bf7
mov eax, 0xfffffff5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x55555556
imul dword [ebp + 0x20]
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ebx, [eax + eax*2]
movzx eax, word [ecx + 0x12]
mov dword [esp + 0x44], ebx
test ax, ax
je 0x486c61
mov ecx, eax
mov eax, 0x55555556
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jl 0x486c61
lea ebx, [ecx + ecx*2 + 3]
lea ecx, [ebx*4]
push ecx
mov dword [esp + 0x48], ebx
call dword [0x4be358]
mov edi, eax
add esp, 4
mov dword [esp + 0x64], edi
test edi, edi
jne 0x486c57
lea eax, [edi - 6]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x30], 1
jmp 0x486c68
mov edi, dword [ebp + 0x1c]
mov dword [esp + 0x64], edi
lea ecx, [ebx + ebx]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
or edx, 0xffffffff
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x90], 0
mov dword [esp + 0xdc], edx
test edi, edi
je 0x486cd6
mov ecx, dword [esp + 0x18]
movzx ecx, word [ecx + 0x10]
add ecx, ecx
lea eax, [edi + ebx*4]
lea ebx, [ecx + ecx]
mov ecx, eax
sub ecx, ebx
lea ebx, [edi + 8]
cmp ecx, ebx
jae 0x486cb7
mov ecx, ebx
sub eax, 4
cmp eax, ecx
jb 0x486ccd
mov edi, edi
mov dword [eax], edx
sub eax, 4
cmp eax, ecx
jae 0x486cc0
mov edi, dword [esp + 0x64]
mov dword [edi + 4], edx
mov eax, dword [esp + 0x64]
mov dword [eax], edx
cmp dword [esp + 0x3c], 0
jne 0x486d32
mov edx, dword [esp + 0x18]
test byte [edx + 0xc], 2
je 0x486d14
movzx eax, word [edx + 0x14]
mov ecx, eax
and ecx, 0xff
shr eax, 8
and eax, 1
mov dword [esp + 0x20], ecx
mov dword [esp + 0x54], eax
je 0x486d36
mov eax, dword [esp + 0x88]
movzx ecx, byte [eax + ecx]
mov dword [esp + 0x20], ecx
jmp 0x486d36
cmp dword [esp + 0x34], 0
jne 0x486d32
mov eax, dword [esp + 0x24]
test eax, eax
je 0x486d32
test byte [eax + 4], 1
je 0x486d32
add eax, 8
mov dword [esp + 0x2c], eax
jmp 0x486d36
mov edx, dword [esp + 0x18]
test byte [edx + 0xc], 4
je 0x486d6a
mov edx, dword [esp + 0x18]
movzx eax, word [edx + 0x16]
mov ecx, eax
and ecx, 0xff
shr eax, 8
and eax, 1
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], ecx
movzx ecx, byte [eax + ecx + 0x100]
mov dword [esp + 0x48], ecx
mov eax, dword [ebp + 0x18]
and eax, 0x4000000
mov dword [esp + 0x100], eax
cmp dword [esp + 0x38], 0
mov ecx, dword [esp + 0x1c]
mov ebx, ecx
mov dword [esp + 0x14], ebx
je 0x486e08
mov eax, dword [esp + 0xc4]
mov ecx, esi
cmp esi, eax
jae 0x486e04
mov edx, dword [esp + 0x74]
jmp 0x486da0
mov edi, dword [esp + 0x70]
test edi, edi
je 0x486dc8
push 1
push edi
lea edi, [esp + 0x7c]
call fcn.00487740
add esp, 8
test eax, eax
jne 0x486e04
mov eax, dword [esp + 0xc4]
mov edx, dword [esp + 0x74]
jmp 0x486df7
lea edi, [edx + edx]
mov ebx, eax
sub ebx, edi
cmp ecx, ebx
ja 0x486df3
movzx edi, byte [esp + 0x84]
cmp word [ecx], di
jne 0x486df3
cmp edx, 1
je 0x486e00
movzx edi, byte [esp + 0x85]
cmp word [ecx + 2], di
je 0x486e00
mov ebx, dword [esp + 0x14]
add ecx, 2
cmp ecx, eax
jb 0x486da0
jmp 0x486e04
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 8]
or eax, dword [ebp + 0x18]
test eax, 0x4000000
jne 0x487028
cmp dword [esp + 0x20], 0
jl 0x486e89
cmp dword [esp + 0x54], 0
je 0x486e5d
cmp esi, ecx
jae 0x487028
mov eax, dword [esp + 0x88]
lea ebx, [ebx]
movzx edx, word [esi]
movzx edx, byte [edx + eax]
cmp edx, dword [esp + 0x20]
je 0x487028
add esi, 2
cmp esi, ecx
jb 0x486e40
jmp 0x487028
cmp esi, ecx
jae 0x487028
jmp 0x486e70
movzx eax, word [esi]
cmp eax, dword [esp + 0x20]
je 0x487028
add esi, 2
cmp esi, ecx
jb 0x486e70
jmp 0x487028
cmp dword [esp + 0x34], 0
je 0x486fa4
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0xc0]
lea edx, [eax + edx*2]
cmp esi, edx
jbe 0x487028
cmp esi, ecx
jae 0x486f6b
cmp dword [esp + 0x70], 0
je 0x486eeb
cmp esi, dword [esp + 0xc0]
jbe 0x486f23
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0xc0]
push eax
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x78]
call fcn.00487810
mov esi, dword [esp + 0x14]
add esp, 4
test eax, eax
jne 0x486f6b
jmp 0x486f23
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0xc0]
lea ecx, [edx + edx]
add eax, ecx
cmp esi, eax
jb 0x486f23
mov eax, esi
sub eax, ecx
movzx ecx, byte [esp + 0x84]
cmp word [eax], cx
jne 0x486f23
cmp edx, 1
je 0x486f6b
movzx edx, byte [esp + 0x85]
cmp word [eax + 2], dx
je 0x486f6b
movzx eax, word [esi + 2]
add esi, 2
mov ecx, 0xdc00
mov dword [esp + 0x10], esi
cmp ax, cx
jb 0x486f61
mov edx, 0xdfff
cmp ax, dx
ja 0x486f61
movzx eax, word [esi - 2]
mov ecx, 0xd800
cmp ax, cx
jb 0x486f61
mov edx, 0xdbff
cmp ax, dx
ja 0x486f61
add esi, 2
mov dword [esp + 0x10], esi
cmp esi, dword [esp + 0x1c]
jb 0x486eb1
cmp word [esi - 2], 0xd
jne 0x487028
mov eax, dword [esp + 0x70]
cmp eax, 1
je 0x486f88
cmp eax, 2
jne 0x487028
cmp esi, dword [esp + 0x1c]
jae 0x487028
cmp word [esi], 0xa
jne 0x487028
add esi, 2
jmp 0x487028
mov edi, dword [esp + 0x2c]
test edi, edi
je 0x487028
xor eax, eax
cmp byte [edi + 0x1f], al
setne al
mov edi, eax
cmp esi, ecx
jae 0x487028
movzx eax, word [esi]
cmp eax, 0x7f
jbe 0x486fc6
mov eax, edi
jmp 0x486fea
mov ecx, eax
and ecx, 7
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x2c]
shr eax, 3
mov al, byte [eax + ecx]
mov ecx, dword [esp + 0x1c]
test al, dl
mov eax, 0
sete al
test eax, eax
je 0x487028
movzx eax, word [esi + 2]
add esi, 2
mov edx, 0xdc00
cmp ax, dx
jb 0x487024
mov edx, 0xdfff
cmp ax, dx
ja 0x487024
movzx eax, word [esi - 2]
mov edx, 0xd800
cmp ax, dx
jb 0x487024
mov edx, 0xdbff
cmp ax, dx
ja 0x487024
add esi, 2
cmp esi, ecx
jb 0x486fba
cmp dword [esp + 0x100], 0
mov dword [esp + 0x1c], ebx
jne 0x4870d3
cmp dword [esp + 0xd4], 0
jne 0x4870d3
mov eax, dword [esp + 0x24]
test eax, eax
je 0x487061
test byte [eax + 4], 2
je 0x487061
mov ecx, ebx
sub ecx, esi
sar ecx, 1
cmp ecx, dword [eax + 0x28]
jb 0x4870a8
mov edx, dword [esp + 0x40]
test edx, edx
js 0x4870d3
mov eax, ebx
sub eax, esi
and eax, 0xfffffffe
cmp eax, 0x7d0
jge 0x4870d3
xor ecx, ecx
cmp dword [esp + 0x20], ecx
setge cl
lea eax, [esi + ecx*2]
cmp eax, dword [esp + 0x50]
jbe 0x4870d3
cmp dword [esp + 0x4c], 0
je 0x4870af
cmp eax, ebx
jae 0x4870a8
movzx ecx, word [eax]
add eax, 2
cmp ecx, edx
je 0x4870c8
cmp ecx, dword [esp + 0x48]
je 0x4870c8
cmp eax, ebx
jb 0x487094
xor ebx, ebx
jmp 0x48728d
cmp eax, ebx
jae 0x4870a8
movzx ecx, word [eax]
add eax, 2
cmp ecx, edx
je 0x4870c8
cmp eax, ebx
jb 0x4870b3
xor ebx, ebx
jmp 0x48728d
sub eax, 2
cmp eax, ebx
jae 0x4870a8
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xbc]
xor edi, edi
push edi
push edi
lea edx, [esp + 0x60]
push edx
push 2
push edi
push esi
push eax
push esi
mov dword [esp + 0xe8], esi
mov dword [esp + 0xf0], esi
mov dword [esp + 0x78], edi
mov dword [esp + 0x104], edi
mov dword [esp + 0xf8], edi
call fcn.0047dc80
add esp, 0x20
mov ebx, eax
cmp dword [esp + 0xb4], edi
je 0x48712d
cmp dword [esp + 0x28], edi
jne 0x48712d
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x28], ecx
cmp ebx, 0xfffffc1e
jg 0x487158
je 0x48714b
cmp ebx, 0xfffffc1a
je 0x4870a8
cmp ebx, 0xfffffc1d
jmp 0x48716e
mov ecx, dword [esp + 0xc8]
cmp ecx, esi
je 0x487174
jmp 0x4871ae
cmp ebx, 0xfffffc1f
jl 0x487280
cmp ebx, 0xfffffc20
jle 0x487174
cmp ebx, edi
jne 0x487280
movzx eax, word [esi + 2]
lea ecx, [esi + 2]
mov edx, 0xdc00
mov dword [esp + 0x10], ecx
cmp ax, dx
jb 0x4871b2
mov edx, 0xdfff
cmp ax, dx
ja 0x4871b2
movzx eax, word [ecx - 2]
mov edx, 0xd800
cmp ax, dx
jb 0x4871b2
mov edx, 0xdbff
cmp ax, dx
ja 0x4871b2
add ecx, 2
mov dword [esp + 0x10], ecx
xor ebx, ebx
cmp dword [esp + 0x38], edi
je 0x487227
cmp dword [esp + 0x70], edi
je 0x4871f3
cmp esi, dword [esp + 0xc4]
jae 0x487227
mov eax, dword [esp + 0x70]
push 1
push eax
mov eax, dword [esp + 0xcc]
lea edi, [esp + 0x7c]
mov ecx, esi
call fcn.00487740
add esp, 8
test eax, eax
jne 0x48728d
mov ecx, dword [esp + 0x10]
jmp 0x487227
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0xc4]
lea edx, [eax + eax]
sub edi, edx
cmp esi, edi
ja 0x487227
movzx edx, byte [esp + 0x84]
cmp word [esi], dx
jne 0x487227
cmp eax, 1
je 0x48728d
movzx eax, byte [esp + 0x85]
cmp word [esi + 2], ax
je 0x48728d
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x3c], ebx
jne 0x48728d
mov eax, dword [esp + 0x14]
cmp ecx, eax
ja 0x48728d
cmp word [ecx - 2], 0xd
jne 0x487270
cmp ecx, eax
jae 0x487270
cmp word [ecx], 0xa
jne 0x487270
mov edx, dword [esp + 0x18]
test byte [edx + 0xc], 0x20
jne 0x487270
mov eax, dword [esp + 0x70]
cmp eax, 1
je 0x487269
cmp eax, 2
je 0x487269
cmp dword [esp + 0x74], 2
jne 0x487270
add ecx, 2
mov dword [esp + 0x10], ecx
mov esi, dword [esp + 0x10]
mov dword [esp + 0xf8], ebx
jmp 0x486d79
cmp ebx, 1
je 0x4872f1
cmp ebx, 0xfffffc19
je 0x4872f1
cmp dword [esp + 0x30], 0
je 0x4872a2
mov eax, dword [esp + 0x64]
push eax
call dword [0x4be35c]
add esp, 4
test ebx, ebx
je 0x4872af
cmp ebx, 0xfffffff4
jne 0x4873df
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4872e9
cmp dword [ebp + 0x20], 1
mov dword [esp + 0xf8], 0
jle 0x4872df
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x1c]
sub eax, edx
sar eax, 1
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
sub eax, edx
sar eax, 1
mov dword [ecx + 4], eax
mov ebx, 0xfffffff4
jmp 0x4873c7
or ebx, 0xffffffff
jmp 0x4873c7
cmp dword [esp + 0x30], edi
mov edi, dword [ebp + 0x20]
je 0x48733c
mov esi, dword [esp + 0x64]
cmp edi, 4
jl 0x48731e
mov eax, dword [ebp + 0x1c]
lea ecx, [edi*4 - 8]
push ecx
lea edx, [esi + 8]
push edx
add eax, 8
push eax
call fcn.00490240
add esp, 0xc
cmp dword [esp + 0xd8], edi
jle 0x487332
mov dword [esp + 0x90], 1
push esi
call dword [0x4be35c]
add esp, 4
cmp dword [esp + 0x90], 0
mov esi, dword [esp + 0xd8]
je 0x487351
xor ebx, ebx
jmp 0x48735a
mov eax, esi
cdq
sub eax, edx
mov ebx, eax
sar ebx, 1
mov ecx, dword [esp + 0x18]
movzx ecx, word [ecx + 0x10]
mov eax, esi
cdq
sub eax, edx
sar eax, 1
cmp eax, ecx
jg 0x487398
cmp dword [ebp + 0x1c], 0
je 0x487398
lea eax, [ecx + ecx + 2]
cmp eax, edi
jle 0x48737f
mov eax, dword [esp + 0x44]
mov ecx, dword [ebp + 0x1c]
lea edi, [ecx + esi*4]
lea ecx, [ecx + eax*4]
cmp edi, ecx
jae 0x487398
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
cmp dword [ebp + 0x20], 2
jge 0x4873a2
xor ebx, ebx
jmp 0x4873c7
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xc8]
mov eax, dword [ebp + 0x1c]
sub edx, ecx
sar edx, 1
mov dword [eax], edx
mov edx, dword [esp + 0xcc]
sub edx, ecx
sar edx, 1
mov dword [eax + 4], edx
mov eax, dword [ebp + 8]
test eax, eax
je 0x4873df
test byte [eax], 0x20
je 0x4873df
mov eax, dword [eax + 0x18]
mov ecx, dword [esp + 0xf8]
mov dword [eax], ecx
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xffffffe8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret