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

Disassembly:
sub esp, 0x94
xor eax, eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
lea eax, [esp]
push eax
lea edx, [esp + 8]
lea ecx, [esp + 0x64]
call fcn.004a1a12
mov ecx, dword [esp + 4]
push ebx
push ebp
add ecx, 0x1c
push esi
mov dword [esp + 0x1c], ecx
push edi
xor eax, eax
mov dword [esp + 0x1c], 2
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov ebp, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 4]
cmp eax, 0xffff
mov ecx, dword [edx]
je 0x48799f
mov dword [edx], eax
mov edx, dword [esp + 0x14]
mov dword [edx + 4], 0xffff
mov dword [esp + 0x98], 1
mov eax, dword [ebp + 0x28]
and dword [ebp + 0x18], 0xfffffffb
mov dword [ebp + 0x2c], eax
mov eax, dword [esp + 0x70]
mov esi, dword [eax]
mov edi, eax
mov dword [esp + 0x44], ecx
add esi, 0x1c
mov ebx, dword [esp + 0x44]
mov eax, dword [esi + 0x28]
movzx ecx, word [eax]
add eax, 2
cmp cx, 0x100
mov dword [esi + 0x28], eax
jae 0x4879da
movzx edx, cl
mov al, byte [edx + 0x435a48]
jmp 0x4879e8
cmp cx, 0x3000
setne al
sub al, 1
and al, 0x15
add al, 1
imul ebx, ebx, 0x17
movzx eax, al
add ebx, eax
movzx ebx, word [ebx*2 + 0x435b48]
test ebx, 0xff00
jne 0x487a06
mov dword [esp + 0x44], ebx
jmp 0x4879bc
test cx, cx
jne 0x487ade
mov edx, dword [edi]
add edx, 0x80c8
mov ecx, esi
call fcn.00482f76
test eax, eax
je 0x487a2c
test bl, 2
je 0x4879b8
jmp 0x487b09
mov eax, dword [esi + 0x18]
test al, al
js 0x487ad7
test al, 2
jne 0x487b09
test al, 1
je 0x487ade
add dword [esi + 0x88], 1
mov edx, dword [esi + 0x88]
mov eax, dword [edi + 4]
mov ecx, dword [eax + 4]
mov ebx, dword [ecx]
push edx
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
push edx
push eax
push ecx
mov ecx, dword [ebx + 0x64]
call ecx
mov eax, dword [esi + 0x88]
and dword [esi + 0x18], 0xfffffffe
sub eax, 1
je 0x487aba
sub eax, 1
je 0x487ab1
sub eax, 1
jne 0x487ac1
mov edx, dword [edi]
add edx, 0x80c8
mov ecx, esi
call fcn.004830b7
test byte [esi + 0x18], 0x80
je 0x487ac1
mov bl, byte [esi + 0x18]
and bl, 0x80
neg bl
sbb ebx, ebx
and ebx, 0xfffff508
add ebx, 0xb00
jmp 0x487b09
mov ecx, edi
call fcn.004850f0
jmp 0x487ac1
mov ecx, edi
call fcn.004850e2
xor eax, eax
cmp dword [esi + 0x88], 3
setne al
test eax, eax
jne 0x4879b8
jmp 0x487a99
mov ebx, 8
jmp 0x487b09
test bl, 1
je 0x487b09
add dword [esi + 0x28], 0xfffffffe
mov eax, dword [esi + 0x28]
cmp eax, dword [esi + 0x20]
jae 0x487b09
mov eax, dword [esi + 0x24]
mov edx, dword [esi + 0x20]
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x20], eax
add eax, 0x4000
mov dword [esi + 0x24], edx
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x28], eax
test bl, 0xc
je 0x487b36
test bl, 8
jne 0x489d18
mov edx, dword [esp + 0x44]
cmp edx, 0xe
jne 0x487b2d
mov eax, dword [esp + 0x14]
mov dword [eax + 4], 0xf
jmp 0x487b3a
mov ecx, dword [esp + 0x14]
mov dword [ecx + 4], edx
jmp 0x487b3a
mov edx, dword [esp + 0x44]
mov eax, ebx
shr eax, 8
add eax, 0xffffffff
cmp eax, 0x16
ja case.0x487b4b.1
jmp dword [eax*4 + 0x489d30]
mov ecx, dword [esp + 0x14]
mov dword [ecx], 0xa
mov ecx, dword [esp + 0x94]
test ecx, ecx
jne 0x488462
lea edx, [esp + 0x50]
push edx
call fcn.004a1a12
mov dword [esp + 0x9c], 1
mov dword [esp + 0x50], 0
jmp case.0x487b4b.4
mov esi, dword [esp + 0x20]
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x20]
cmp eax, ecx
mov ebp, 1
jb 0x487bba
add ecx, 0x4000
cmp eax, ecx
ja 0x487bba
mov ecx, dword [esi + 0x28]
sub ecx, eax
sar ecx, 1
mov dword [esp + 0x18], ecx
mov edi, dword [esi + 0x2c]
jmp 0x487bc7
lea edx, [esp + 0x18]
mov ecx, esi
call fcn.004a1a12
mov edi, eax
xor edx, edx
mov ecx, esi
add edi, 2
call fcn.00481eab
mov edx, dword [esp + 0x18]
mov ebx, eax
add ebx, ebp
sub edx, ebp
mov dword [esp + 0x18], edx
je 0x487c2e
cmp word [edi], 0x2f
jne 0x487c2e
mov eax, dword [esp + 0x14]
sub edx, 1
xor ebp, ebp
add edi, 2
add ebx, 1
mov dword [esp + 0x18], edx
cmp dword [eax + 0x10], 0xfffffffe
jne 0x487c5c
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
mov ecx, dword [eax]
mov esi, dword [ecx + 0x300]
cmp esi, 0xffffffff
je 0x487c5c
push edx
mov edx, edi
mov ecx, esi
call fcn.0048333a
test eax, eax
jne 0x487caf
mov edx, dword [esp + 0x18]
jmp 0x487c5c
cmp edx, 2
jne 0x487c5c
mov ax, word [edi]
or ax, 0x20
cmp ax, 0x74
jne 0x487c5c
mov cx, word [edi + 2]
or cx, 0x20
cmp cx, 0x64
jne 0x487c5c
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x10], 0xfffffffe
je 0x488c56
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x10]
push eax
mov ecx, edi
call fcn.004833af
mov esi, eax
cmp esi, 0x1fe
jne 0x487caf
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
mov eax, dword [eax]
mov ecx, dword [eax]
mov edx, dword [ecx + 0xb8]
push eax
call edx
test dword [eax + 0x30], 0x40000
jne 0x487ca2
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
test dword [ecx + 8], 0x1000
je 0x487cb4
or esi, 0xffffffff
mov dword [esp + 0x1c], 1
jmp 0x487cf0
cmp esi, 0xffffffff
je 0x487ca5
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x7c]
push esi
push eax
call edx
test eax, eax
jne 0x487ca2
lea eax, [esi + 0x101]
cmp eax, 1
mov dword [esp + 0x1c], eax
je 0x487cf0
test ebp, ebp
jne 0x488c67
lea ecx, [esi + esi*4]
test byte [ecx*4 + 0x42ff94], 1
jne 0x488c67
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x10]
cmp ecx, 0xfffffffc
jg 0x487d07
mov dword [eax], 0x1b
jmp 0x487973
cmp ecx, 0xfffffffd
jne 0x488ca9
cmp dword [esp + 0x18], 8
jne 0x488c99
push 1
push 8
push 0x42ed7c
push 8
push edi
call fcn.00495067
test eax, eax
je 0x488c95
mov edx, dword [esp + 0x14]
mov dword [edx], 0x1e
jmp 0x487973
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x20]
cmp eax, ecx
jb 0x487d6b
add ecx, 0x4000
cmp eax, ecx
ja 0x487d6b
mov ecx, dword [ebp + 0x28]
sub ecx, eax
sar ecx, 1
mov dword [esp + 0x18], ecx
mov esi, dword [ebp + 0x2c]
mov dword [esp + 0x4c], esi
jmp 0x487d7c
lea edx, [esp + 0x18]
mov ecx, ebp
call fcn.004a1a12
mov esi, eax
mov dword [esp + 0x4c], eax
and ebx, 2
je 0x487d87
test byte [ebp + 0x18], 2
je 0x487d93
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x18], 0
jle 0x487df2
jmp 0x487d97
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
push ecx
lea edx, [eax + 0x14]
push esi
push edx
lea edx, [eax + 0x18]
lea ecx, [eax + 0x10]
call fcn.00487712
test eax, eax
je 0x489cc0
test ebx, ebx
je 0x487dcd
test byte [ebp + 0x18], 2
jne 0x487dcd
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x44]
mov dword [eax], ecx
jmp case.0x487b4b.4
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x10]
mov edx, dword [eax + 0x18]
mov dword [esp + 0x18], edx
mov eax, dword [eax + 0x10]
mov word [eax], 0
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x4c], esi
mov dword [ecx + 0x18], 0
mov edx, dword [esp + 0x18]
lea edx, [esi + edx*2 - 4]
lea ebx, [esi + 4]
mov edi, edx
cmp ebx, edi
mov dword [esp + 0xa0], edx
jae 0x487e3c
movzx eax, word [ebx]
cmp ax, 0x5b
je 0x487e22
cmp ax, 0x23
je 0x487e22
add ebx, 2
cmp ebx, edi
jb 0x487e0a
jmp 0x487e3c
cmp edi, ebx
jbe 0x487e3c
movzx eax, word [edi]
cmp ax, 0x5d
je 0x487e3c
cmp ax, 0x23
je 0x487e3c
sub edi, 2
cmp edi, ebx
ja 0x487e26
sub edi, 2
add ebx, 2
mov ecx, edi
sub ecx, ebx
sar ecx, 1
add ecx, 1
cmp ecx, 5
mov dword [esp + 0x44], ecx
jne 0x487f69
mov eax, 0xa
mov ecx, 0x429904
mov edx, ebx
nop
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x487e7d
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x487e65
test eax, eax
je 0x487ee2
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x487ecc
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x487ede
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x487ecc
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x487ede
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x487ecc
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x487ede
movzx esi, byte [edx]
movzx eax, byte [ecx]
sub esi, eax
je 0x487ede
test esi, esi
mov ebp, dword [esp + 0x20]
mov eax, 1
jg 0x487ee4
or eax, 0xffffffff
jmp 0x487ee4
mov ebp, dword [esp + 0x20]
xor eax, eax
test eax, eax
jne 0x487f72
mov eax, dword [ebp + 0x8c]
test eax, eax
jle 0x487f23
add eax, 0xffffffff
mov dword [ebp + 0x8c], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov esi, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov edx, dword [ecx]
push esi
push eax
push ecx
mov ecx, dword [edx + 0x80]
call ecx
test eax, eax
je 0x489d18
jmp 0x487f36
mov eax, dword [ebp + 0x90]
test eax, eax
jle 0x487f36
add eax, 0xffffffff
mov dword [ebp + 0x90], eax
cmp dword [ebp + 0x8c], 1
jge 0x48822d
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x10], 0xfffffffc
jne 0x48822d
mov edx, dword [ebp + 0x94]
mov dword [eax + 0x10], edx
mov ecx, dword [esp + 0x14]
mov dword [ecx], 0
jmp case.0x487b4b.4
cmp ecx, 2
jle 0x4880ed
mov eax, 4
mov ecx, 0x42e1c0
mov edx, ebx
lea esp, [esp]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x487f99
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x487f81
test eax, eax
je 0x488006
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x487fe8
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x488002
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x487fe8
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x488002
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x487fe8
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x488002
movzx esi, byte [edx]
movzx eax, byte [ecx]
sub esi, eax
je 0x488002
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x44]
test esi, esi
mov esi, dword [esp + 0x4c]
mov eax, 1
jg 0x488010
or eax, 0xffffffff
jmp 0x488010
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x4c]
xor eax, eax
test eax, eax
jne 0x4880e6
mov eax, dword [ebp + 0x8c]
test eax, eax
jle 0x48803a
add eax, 1
mov dword [ebp + 0x8c], eax
mov ecx, dword [esp + 0x14]
mov dword [ecx], 0
jmp case.0x487b4b.4
cmp word [ebx + 4], 0x20
lea esi, [ebx + 4]
jne 0x48804d
add esi, 2
cmp word [esi], 0x20
je 0x488044
xor edx, edx
mov ecx, ebp
mov dword [esp + 0x24], 0x1a
mov byte [esp + 0x28], 4
mov dword [esp + 0x38], 0xffffffff
call fcn.00481eab
mov ecx, dword [esp + 0x10]
sub edi, esi
mov dword [esp + 0x2c], esi
sar edi, 1
mov esi, 1
add edi, esi
add ecx, 4
lea edx, [esp + 0x24]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x30], edi
call fcn.00477492
test eax, eax
jne 0x4880d1
add dword [ebp + 0x8c], esi
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x10]
cmp eax, 0xfffffffe
je 0x4880b1
cmp eax, 0xfffffffd
jne 0x48822d
mov dword [ebp + 0x94], eax
mov edx, dword [esp + 0x14]
mov dword [edx + 0x10], 0xfffffffc
mov ecx, dword [esp + 0x14]
mov dword [ecx], 0
jmp case.0x487b4b.4
add dword [ebp + 0x90], esi
mov ecx, dword [esp + 0x14]
mov dword [ecx], 0
jmp case.0x487b4b.4
mov edx, dword [esp + 0xa0]
cmp word [esi + 4], 0x2d
jne 0x488181
mov eax, dword [esp + 0x18]
cmp word [esi + eax*2 - 6], 0x2d
jne 0x488181
cmp word [edx], 0x2d
jne 0x488181
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
mov edx, dword [eax]
mov edx, dword [edx + 0x4c]
lea edi, [esp + 0x24]
push edi
mov edi, dword [ecx + 0xc]
mov ecx, dword [ecx + 8]
push edi
push ecx
push eax
call edx
test eax, eax
je 0x488175
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
add edi, 0xfffffff9
push edi
add esi, 8
push esi
mov esi, dword [eax + 0xc]
mov eax, dword [eax + 8]
push esi
push eax
push ecx
mov ecx, dword [edx + 0x74]
call ecx
test eax, eax
je 0x488175
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
lea esi, [esp + 0x24]
push esi
mov esi, dword [eax + 0xc]
mov eax, dword [eax + 8]
push esi
push eax
push ecx
mov ecx, dword [edx + 0x50]
call ecx
test eax, eax
jne 0x48822d
or dword [ebp + 0x18], 0x80
jmp 0x489caf
cmp ecx, 7
jle 0x48822d
mov eax, 0xc
mov ecx, 0x436294
mov edx, ebx
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x4881ae
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x488196
test eax, eax
je 0x488213
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x4881fd
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x48820f
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x4881fd
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x48820f
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x4881fd
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x48820f
movzx esi, byte [edx]
movzx edx, byte [ecx]
sub esi, edx
je 0x48820f
test esi, esi
mov ebp, dword [esp + 0x20]
mov eax, 1
jg 0x488215
or eax, 0xffffffff
jmp 0x488215
mov ebp, dword [esp + 0x20]
xor eax, eax
test eax, eax
jne 0x48822d
cmp word [edi], 0x5d
jne 0x48822d
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x10], 0xfffffffd
je 0x4892da
mov ecx, dword [esp + 0x14]
mov dword [ecx], 0
jmp case.0x487b4b.4
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x20]
cmp eax, ecx
jb 0x488260
add ecx, 0x4000
cmp eax, ecx
ja 0x488260
mov edx, dword [ebp + 0x28]
sub edx, eax
sar edx, 1
mov dword [esp + 0x18], edx
mov esi, dword [ebp + 0x2c]
jmp 0x48826d
lea edx, [esp + 0x18]
mov ecx, ebp
call fcn.004a1a12
mov esi, eax
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x10], 0xfffffffc
jne 0x48931d
mov dword [eax], 0x1b
jmp case.0x487b4b.4
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x10], 0xfffffffc
jg 0x4894a5
mov dword [eax], 0x1b
jmp case.0x487b4b.4
cmp dword [esp + 0x48], 0
je 0x4882b8
lea eax, [esp + 0x50]
push eax
call fcn.004a1a12
mov dword [esp + 0x48], 0
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x20]
cmp eax, ecx
jb 0x4882dc
add ecx, 0x4000
cmp eax, ecx
ja 0x4882dc
mov edx, dword [ebp + 0x28]
sub edx, eax
sar edx, 1
mov dword [esp + 0x18], edx
mov esi, dword [ebp + 0x2c]
jmp 0x4882ed
lea edx, [esp + 0x18]
mov ecx, ebp
call fcn.004a1a12
mov edx, dword [esp + 0x18]
mov esi, eax
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x14]
lea ecx, [esp + 0x94]
push ecx
push eax
mov ecx, esi
call fcn.0048346b
cmp eax, 0xffffffff
mov dword [esp + 0x4c], eax
lea edi, [eax + 0x101]
jne 0x488318
mov edi, 1
cmp eax, 0xffffffff
mov dword [esp + 0x1c], edi
je 0x48834d
lea edx, [eax + eax*4]
test byte [edx*4 + 0x42ff94], 0x80
je 0x488348
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x1c]
push eax
lea edx, [esp + 0x50]
call fcn.004a1a12
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
cmp eax, 0xffffffff
jne 0x488377
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x14]
push edx
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
mov edx, esi
call fcn.004a1a12
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
cmp edi, 1
jne 0x488434
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ebp + 0x20]
cmp ecx, eax
jb 0x4883a3
add eax, 0x4000
cmp ecx, eax
ja 0x4883a3
mov eax, dword [ebp + 0x28]
sub eax, ecx
sar eax, 1
mov dword [esp + 0x18], eax
mov esi, dword [ebp + 0x2c]
jmp 0x4883b4
lea edx, [esp + 0x18]
mov ecx, ebp
call fcn.004a1a12
mov esi, eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x14], 0xfffffffe
jne 0x4883c5
mov edi, 0x11
jmp 0x4883d5
cmp eax, 1
jne 0x4883d9
cmp word [esi], 0x2f
jne 0x4883d9
mov edi, 0x19
mov dword [esp + 0x1c], edi
xor edx, edx
mov ecx, ebp
mov dword [esp + 0x50], edi
mov byte [esp + 0x54], 4
mov dword [esp + 0x64], 0xffffffff
call fcn.00481eab
cmp edi, 0x11
mov edx, dword [esp + 0x18]
mov dword [esp + 0x68], eax
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], edx
je 0x488441
lea ecx, [esp + 0x50]
call fcn.0046b958
test eax, eax
jne 0x488441
mov dword [esp + 0x50], eax
or dword [ebp + 0x18], 0x80
cmp dword [esp + 0x50], eax
je 0x489cc0
lea eax, [esp + 0x50]
push eax
jmp 0x489cbb
mov dword [esp + 0x50], edi
mov byte [esp + 0x54], 0
mov dword [esp + 0x64], eax
cmp dword [esp + 0x9c], 0
jne 0x4888f8
mov ecx, dword [esp + 0x94]
cmp ecx, 0x4000
jne 0x48964b
cmp ecx, 0x8000
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
jne 0x4884b9
mov ecx, dword [ebp + 0x28]
movzx ecx, word [ecx]
cmp cx, 0x22
je 0x488488
cmp cx, 0x27
je 0x488488
cmp cx, 0x26
jne 0x4884b9
cmp dword [esp + 0x74], 0x10
jne 0x48849a
cmp dword [esp + 0x48], 0
je 0x488673
lea edx, [esp + 0x50]
push edx
call fcn.004a1a12
mov dword [esp + 0x48], 0
mov dword [esp + 0x50], 0
jmp case.0x487b4b.4
mov ecx, dword [esp + 0x74]
cmp ecx, 0x10
jne 0x488508
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x50]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax + 8]
call fcn.004a1a12
test eax, eax
je 0x489cc0
cmp dword [esp + 0x48], 0
je 0x488673
lea eax, [esp + 0x50]
push eax
call fcn.004a1a12
mov dword [esp + 0x48], 0
mov dword [esp + 0x50], 0
jmp case.0x487b4b.4
lea edx, [esi + esi*4]
test dword [edx*4 + 0x42ff94], 0x20000
je 0x488605
cmp dword [esp + 0x64], 0xffffffff
jne 0x4885ca
mov edx, dword [esp + 0x50]
cmp edx, 1
jne 0x48855f
cmp dword [eax + 0x20], 0
jne 0x488635
cmp ecx, 0x2ff
je 0x488635
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x50]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax + 8]
call fcn.004a1a12
jmp 0x48862d
cmp edx, 0x19
jne 0x488635
cmp ecx, 0x300
jne 0x488635
cmp dword [eax + 0x20], 0
jne 0x488635
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov edx, dword [ecx]
push esi
push eax
push ecx
mov ecx, dword [edx + 0x68]
call ecx
test eax, eax
mov eax, dword [esp + 0x10]
je 0x4885b1
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
lea edi, [esp + 0x50]
push edi
mov edi, dword [eax + 0xc]
mov eax, dword [eax + 8]
push edi
push eax
push esi
push ecx
mov ecx, dword [edx + 0x14]
call ecx
jmp 0x48862d
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x50]
push edx
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, esi
call fcn.004a1a12
jmp 0x48862d
cmp dword [eax + 0x20], 0
jne 0x488673
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov edx, dword [ecx]
push esi
push eax
push ecx
mov ecx, dword [edx + 0x68]
call ecx
test eax, eax
mov eax, dword [esp + 0x10]
jne 0x488652
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x50]
push edx
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, esi
call fcn.004a1a12
jmp 0x48866b
cmp dword [esp + 0x64], 0xffffffff
jne 0x48864c
cmp dword [esp + 0x50], 1
jne 0x488635
cmp dword [eax + 0x20], 0
jne 0x488635
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x50]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax + 8]
call fcn.004a1a12
test eax, eax
je 0x489cc0
lea eax, [esp + 0x50]
push eax
call fcn.004a1a12
mov dword [esp + 0x50], 0
jmp case.0x487b4b.4
cmp dword [eax + 0x20], 0
jne 0x488673
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
lea edi, [esp + 0x50]
push edi
mov edi, dword [eax + 0xc]
mov eax, dword [eax + 8]
push edi
push eax
push esi
push ecx
mov ecx, dword [edx + 0x14]
call ecx
test eax, eax
je 0x489cc0
mov dword [esp + 0x50], 0
jmp case.0x487b4b.4
test bl, 2
je 0x4886b1
test byte [ebp + 0x18], 2
jne 0x4886b1
add dword [ebp + 0x28], 0xfffffffe
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp + 0x20]
jae 0x4886b1
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x20]
mov dword [ebp + 0x24], ecx
mov ecx, dword [ebp + 0x30]
mov dword [ebp + 0x20], eax
add eax, 0x4000
mov dword [ebp + 0x1c], ecx
mov dword [ebp + 0x28], eax
add dword [ebp + 0x28], 0xfffffffe
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp + 0x20]
jae case.0x487b4b.2
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x20]
mov dword [ebp + 0x24], ecx
mov ecx, dword [ebp + 0x30]
mov dword [ebp + 0x20], eax
add eax, 0x4000
mov dword [ebp + 0x1c], ecx
mov dword [ebp + 0x28], eax
mov edi, dword [esp + 0x14]
mov eax, 0xfffffffc
cmp dword [edi + 0x10], eax
jg 0x488700
lea ecx, [edx - 0x14]
cmp ecx, 2
ja 0x48872f
mov dword [edi], 0x14
mov edi, dword [esp + 0x14]
cmp dword [edi + 0x10], eax
je case.0x487b4b.4
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x20]
cmp eax, ecx
jb 0x48965a
add ecx, 0x4000
cmp eax, ecx
ja 0x48965a
mov ecx, dword [ebp + 0x28]
sub ecx, eax
sar ecx, 1
mov dword [esp + 0x18], ecx
mov esi, dword [ebp + 0x2c]
jmp 0x48966f
mov dword [edi], 0x1b
jmp case.0x487b4b.4
mov edx, dword [esp + 0x14]
cmp dword [edx + 0x10], 0xfffffffc
jg 0x489751
mov dword [edx], 0x1b
jmp case.0x487b4b.4
cmp dword [esp + 0x74], 0x10
jne 0x488787
cmp dword [esp + 0x50], 0
je 0x488787
test byte [ebp + 0x18], 2
jne 0x488787
cmp dword [esp + 0x48], 0
jne 0x488787
lea ecx, [esp + 0x50]
call fcn.0046b958
test eax, eax
je 0x489d10
mov dword [esp + 0x48], 1
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x10], 0xfffffffc
jg 0x489856
mov dword [eax], 0x1b
jmp case.0x487b4b.4
mov edx, dword [esp + 0x14]
mov dword [edx], 0
jmp case.0x487b4b.4
mov eax, dword [esp + 0x14]
mov dword [eax], 0xa
jmp case.0x487b4b.4
test byte [ebp + 0x18], 2
je case.0x487b4b.4
cmp dword [esp + 0x74], 0
je 0x48884a
mov edx, dword [esp + 0x88]
test edx, edx
jl 0x48884a
lea eax, [edx + edx*4]
test dword [eax*4 + 0x42ff94], 0x10000
jne 0x48884a
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov esi, dword [ecx]
lea edi, [esp + 0x74]
push edi
mov edi, dword [eax + 0xc]
mov eax, dword [eax + 8]
push edi
push eax
push edx
push ecx
mov ecx, dword [esi + 0x10]
call ecx
test eax, eax
je 0x489cc0
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xc]
cmp dword [edx + 0xf0], 0
jne 0x48884a
cmp dword [esp + 0x88], 0
jl 0x48884a
cmp dword [esp + 0x84], 0
je 0x488840
mov eax, edx
and dword [eax + 4], 0xefffffff
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
or dword [eax + 4], 0x400000
cmp dword [esp + 0x50], 0
je 0x48885b
lea eax, [esp + 0x50]
push eax
call fcn.004a1a12
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x94
ret
cmp dword [esp + 0x74], 0x10
jne 0x4888a5
cmp dword [esp + 0x50], 0
je 0x4888a5
test bl, 2
je 0x4888a5
test byte [ebp + 0x18], 2
jne 0x4888a5
cmp dword [esp + 0x48], 0
jne 0x4888a5
lea ecx, [esp + 0x50]
call fcn.0046b958
test eax, eax
je 0x489cd0
mov edx, dword [esp + 0x44]
mov dword [esp + 0x48], 1
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ebp + 0x20]
cmp ecx, eax
mov edi, 4
jb 0x4888cd
add eax, 0x4000
cmp ecx, eax
ja 0x4888cd
mov eax, dword [ebp + 0x28]
sub eax, ecx
sar eax, 1
mov dword [esp + 0x18], eax
mov esi, dword [ebp + 0x2c]
jmp 0x4888e2
lea edx, [esp + 0x18]
mov ecx, ebp
call fcn.004a1a12
mov edx, dword [esp + 0x44]
mov esi, eax
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x48890f
lea ecx, [edx - 0xc]
cmp ecx, 3
jbe 0x48894c
mov edx, dword [esp + 0x14]
mov dword [edx], 0xa
lea eax, [esp + 0x50]
push eax
call fcn.004a1a12
mov dword [esp + 0x50], 0
jmp case.0x487b4b.1
cmp edx, 0xc
jne 0x488925
movzx ecx, word [esi]
cmp cx, 0x27
je 0x48893b
cmp word [esi + eax*2 - 2], 0x27
jmp 0x488939
cmp edx, 0xd
jne 0x48894c
movzx ecx, word [esi]
cmp cx, 0x22
je 0x48893b
cmp word [esi + eax*2 - 2], 0x22
jne 0x48894c
cmp eax, 1
je 0x488947
cmp cx, word [esi + eax*2 - 2]
je 0x48894c
mov edi, 0xb
test bl, 2
je 0x488976
test byte [ebp + 0x18], 2
jne 0x488976
mov ecx, dword [esp + 0x14]
mov dword [ecx], edx
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x4889ab
cmp word [esi + eax*2 - 2], 0
jne 0x4889ab
sub eax, 1
mov dword [esp + 0x18], eax
jmp 0x4889ab
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x10], 0xfffffffd
jne 0x4889a5
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
mov eax, dword [eax + 8]
test eax, 0x800
je 0x4889a5
test eax, 0x200
jne 0x4889a5
test bl, 4
jne 0x4889a5
mov dword [ecx], 0x21
jmp 0x4889ab
mov dword [ecx], 0xa
xor edx, edx
mov ecx, ebp
mov dword [esp + 0x24], edi
mov byte [esp + 0x28], 4
mov dword [esp + 0x38], 0xffffffff
call fcn.00481eab
cmp dword [esp + 0x50], 0
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], eax
je case.0x487b4b.1
push eax
mov eax, dword [esp + 0x14]
lea ecx, [eax + 0x14]
push esi
push ecx
lea edx, [eax + 0x18]
lea ecx, [eax + 0x10]
call fcn.00487712
test eax, eax
je 0x489cc0
test bl, 6
jne case.0x487b4b.1
cmp dword [esp + 0x94], 0x4000
mov ebp, dword [esp + 0x64]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x38], ebp
mov byte [esp + 0x28], 6
mov edx, dword [eax + 0x10]
mov dword [esp + 0x2c], edx
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x30], ecx
je 0x488c25
mov ebx, dword [esp + 0x50]
cmp ebx, 0x184
mov edx, dword [esp + 0x88]
mov esi, edx
je 0x488a53
cmp ebx, 0x1f0
jne 0x488a8f
mov edi, dword [esp + 0x74]
cmp edi, 0x2ff
je 0x488a93
mov ecx, dword [eax + 0xc]
test dword [ecx + 4], 0x800000
je 0x488a93
cmp dword [eax + 0x20], 0
jne 0x488a93
lea eax, [esp + 0x24]
push eax
call fcn.004a1a12
test eax, eax
je 0x489cc0
mov ebp, dword [esp + 0x64]
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x74]
cmp edi, 0x10
jne 0x488adb
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x54]
push edx
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
call fcn.004a1a12
test eax, eax
je 0x489cc0
cmp dword [esp + 0x48], 0
je 0x488c2f
lea edx, [esp + 0x50]
push edx
call fcn.004a1a12
mov dword [esp + 0x48], 0
jmp 0x488c2f
lea ecx, [esi + esi*4]
test dword [ecx*4 + 0x42ff94], 0x20000
je 0x488bc8
cmp ebp, 0xffffffff
jne 0x488b36
cmp edi, 0x2ff
je 0x488bfe
cmp ebx, 1
jne 0x488b2c
cmp dword [eax + 0x20], 0
jne 0x488b2c
lea edx, [esp + 0x24]
push edx
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x54]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax + 8]
call fcn.004a1a12
test eax, eax
je 0x489cc0
lea eax, [esp + 0x50]
push eax
jmp 0x488c2a
cmp edi, 0x2ff
jne 0x488b5f
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax + 8]
call fcn.004a1a12
test eax, eax
je 0x489cc0
jmp 0x488c2f
cmp dword [eax + 0x20], 0
jne 0x488c33
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov edx, dword [ecx]
push esi
push eax
push ecx
mov ecx, dword [edx + 0x68]
call ecx
test eax, eax
mov eax, dword [esp + 0x10]
je 0x488ba7
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
lea edi, [esp + 0x24]
push edi
mov edi, dword [eax + 0xc]
mov eax, dword [eax + 8]
push edi
push eax
push esi
push ecx
mov ecx, dword [edx + 0x14]
call ecx
test eax, eax
je 0x489cc0
jmp 0x488c2f
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x24]
push edx
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, esi
call fcn.004a1a12
test eax, eax
je 0x489cc0
jmp 0x488c2f
cmp ebx, 0x2af
jne 0x488bf4
cmp dword [eax + 0x20], 0
jne 0x488c33
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax + 8]
call fcn.004a1a12
test eax, eax
je 0x489cc0
jmp 0x488c2f
cmp ebp, 0xffffffff
jne 0x488c4b
cmp ebx, 1
jne 0x488c25
cmp dword [eax + 0x20], 0
jne 0x488c25
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x54]
push edx
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
call fcn.004a1a12
test eax, eax
je 0x489cc0
lea edx, [esp + 0x50]
push edx
call fcn.004a1a12
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
xor eax, eax
mov word [ecx], ax
mov edx, dword [esp + 0x10]
mov dword [edx + 0x18], eax
mov dword [esp + 0x50], eax
jmp case.0x487b4b.1
cmp dword [eax + 0x20], 0
jne 0x488c33
jmp 0x488b81
mov dword [esp + 0x1c], 0x2c2
mov eax, dword [esp + 0x1c]
mov esi, 0x1c1
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x74], eax
mov byte [esp + 0x78], 2
mov dword [esp + 0x84], ebp
mov dword [esp + 0x88], esi
mov dword [esp + 0x90], 0
mov dword [ecx], 0xa
jmp 0x488cee
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], 0x10
mov dword [eax], 0xa
jmp 0x488cb7
mov dword [esp + 0x1c], 8
mov dword [eax], 0x10
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x80], eax
mov dword [esp + 0x74], edx
mov byte [esp + 0x78], 5
mov dword [esp + 0x84], ebp
mov dword [esp + 0x88], 0xfffffffa
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x7c], edi
mov eax, edx
cmp eax, 0x10
jne 0x488cfa
mov eax, 0xfffffffe
jmp 0x488d01
mov ecx, esi
call fcn.00483452
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x14], eax
mov edx, dword [esp + 0x10]
xor eax, eax
test ebp, ebp
sete al
mov dword [edx], esi
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x20], eax
mov edx, dword [esp + 0x88]
test edx, edx
mov esi, edx
jl 0x488d8f
lea eax, [edx + edx*4]
test dword [eax*4 + 0x42ff94], 0x10000
jne 0x488d8f
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x74]
push ecx
mov ecx, dword [eax + 0xc]
push ecx
mov ecx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
call fcn.004865a8
test eax, eax
je 0x489cc0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
lea edi, [esp + 0x74]
push edi
mov edi, dword [eax + 0xc]
mov eax, dword [eax + 8]
push edi
push eax
push esi
push ecx
mov ecx, dword [edx + 0xc]
call ecx
test eax, eax
jne case.0x487b4b.1
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x94
ret
mov eax, dword [esp + 0x1c]
cmp eax, 0x10
jne 0x488dc8
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x74]
push edx
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
call fcn.004a1a12
test eax, eax
jne case.0x487b4b.1
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x94
ret
cmp eax, 0x2ff
jne 0x488e09
cmp dword [esp + 0x84], 0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x74]
push edx
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
jne 0x488e41
call fcn.004a1a12
test eax, eax
jne case.0x487b4b.1
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x94
ret
cmp eax, 0x102
jne 0x488e5e
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
mov eax, dword [eax]
mov ecx, dword [eax]
mov edx, dword [ecx + 0xb8]
push eax
call edx
test byte [eax + 0x32], 1
je case.0x487b4b.1
lea eax, [esp + 0x74]
push eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
call fcn.004a1a12
test eax, eax
jne case.0x487b4b.1
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x94
ret
cmp eax, 0x297
mov ecx, dword [esp + 0x10]
jne 0x488ef4
mov eax, dword [ecx + 0xc]
mov ebx, dword [eax + 8]
test ebx, 0x400000
jne 0x488f07
test bl, 4
jne 0x488f56
lea eax, [esp + 0x74]
push eax
mov eax, dword [ecx + 0xc]
push eax
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 4]
push eax
call fcn.004865a8
test eax, eax
je 0x489cc0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov edx, dword [eax]
mov edx, dword [edx + 0x68]
push esi
push ecx
push eax
call edx
test eax, eax
mov eax, dword [esp + 0x10]
jne 0x488d5e
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x74]
push edx
mov edx, dword [eax + 8]
push ecx
push edx
mov edx, esi
mov ecx, dword [eax + 4]
call fcn.004a1a12
test eax, eax
jne case.0x487b4b.1
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x94
ret
cmp eax, 0x15a
jne 0x488f3e
mov eax, dword [ecx + 0xc]
test dword [eax + 8], 0x800000
je 0x488e88
cmp dword [esp + 0x84], 0
je case.0x487b4b.1
lea edx, [esp + 0x74]
push edx
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 4]
push eax
call fcn.0046696e
test eax, eax
jne case.0x487b4b.1
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x94
ret
cmp eax, 0x248
jne 0x488e88
mov eax, dword [ecx + 0xc]
test byte [eax + 8], 8
je 0x488e88
cmp dword [esp + 0x84], 0
je case.0x487b4b.1
mov ecx, dword [esp + 0x70]
call fcn.004a1a12
test eax, eax
jne case.0x487b4b.1
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x94
ret
mov eax, dword [esp + 0x14]
or edx, 0xffffffff
mov dword [esp + 0x24], 9
mov byte [esp + 0x28], 0
mov dword [esp + 0x38], edx
cmp dword [eax + 0x10], 0xfffffffc
jg 0x488fab
mov dword [eax], 0x1b
jmp 0x488fd3
cmp dword [eax + 0x14], 0xfffffffe
jne 0x488fcd
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + 0xc]
test dword [esi + 8], 0x800
je 0x488fcd
mov esi, dword [ebp + 0x28]
cmp esi, dword [ebp + 0x2c]
je 0x489cee
mov dword [eax], 0
mov eax, dword [esp + 0x14]
mov dword [eax + 0x14], edx
cmp dword [esp + 0x50], 0
je 0x488fe9
mov dword [esp + 0x50], 0
mov eax, dword [esp + 0x74]
cmp eax, 0x10
mov edx, dword [esp + 0x88]
mov esi, edx
jne 0x489028
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x74]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax + 8]
call fcn.004a1a12
test eax, eax
je 0x489cc0
mov dword [esp + 0x74], 0
jmp case.0x487b4b.1
cmp eax, 8
jne 0x4890a9
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov edi, dword [eax]
push edx
mov edx, dword [edi + 0x68]
push ecx
push eax
call edx
test eax, eax
mov eax, dword [esp + 0x10]
je 0x489064
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
lea edi, [esp + 0x24]
push edi
mov edi, dword [eax + 0xc]
mov eax, dword [eax + 8]
push edi
push eax
push esi
push ecx
mov ecx, dword [edx + 0x10]
call ecx
jmp 0x48907b
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x24]
push edx
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, esi
call fcn.004a1a12
test eax, eax
je 0x489cc0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
cmp dword [ecx + 0xf0], 0
jne 0x4892cd
test esi, esi
jl 0x4892cd
cmp dword [esp + 0x34], 0
jmp 0x4892b4
lea ecx, [edx + edx*4]
test dword [ecx*4 + 0x42ff94], 0x10000
je 0x4891e5
cmp eax, 0x2ff
jne 0x489102
cmp dword [esp + 0x84], 0
je 0x4890e8
mov edx, dword [esp + 0x70]
mov eax, dword [edx]
mov dword [eax + 0x10], 0xfffffffd
mov dword [esp + 0x74], 0
jmp case.0x487b4b.1
mov ecx, dword [esp + 0x70]
mov edx, dword [ecx]
mov dword [edx + 0x10], 0xfffffffe
mov dword [esp + 0x74], 0
jmp case.0x487b4b.1
cmp eax, 0x102
jne 0x489164
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 0xb8]
call eax
test byte [eax + 0x32], 1
je 0x4892cd
mov ecx, dword [esp + 0x70]
mov edx, dword [ecx]
mov dword [edx + 0x10], 0xfffffffd
lea eax, [esp + 0x74]
push eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, esi
call fcn.004a1a12
test eax, eax
je 0x489cc0
mov dword [esp + 0x74], 0
jmp case.0x487b4b.1
cmp eax, 0x297
mov ecx, dword [esp + 0x10]
jne 0x489184
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 8]
test al, 4
jne 0x4892cd
test eax, 0x400000
jmp 0x4891a5
cmp eax, 0x248
jne 0x489194
mov eax, dword [ecx + 0xc]
test byte [eax + 8], 8
jmp 0x4891a5
cmp eax, 0x15a
jne 0x4891ab
mov eax, dword [ecx + 0xc]
test dword [eax + 8], 0x800000
jne 0x4892cd
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov edi, dword [eax]
push edx
mov edx, dword [edi + 0x68]
push ecx
push eax
call edx
test eax, eax
mov eax, dword [esp + 0x10]
je 0x489279
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
lea edi, [esp + 0x74]
push edi
mov edi, dword [eax + 0xc]
mov eax, dword [eax + 8]
push edi
push eax
push esi
push ecx
mov ecx, dword [edx + 0x10]
call ecx
jmp 0x489290
cmp eax, 0x1eb
je 0x489250
cmp eax, 0x1e4
je 0x489250
cmp eax, 0x16f
je 0x489250
cmp eax, 0x1d5
je 0x489250
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov edi, dword [ecx]
lea ebx, [esp + 0x74]
push ebx
mov ebx, dword [eax + 0xc]
mov eax, dword [eax + 8]
push ebx
push eax
push edx
push ecx
mov ecx, dword [edi + 0x10]
call ecx
test eax, eax
je 0x489cc0
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xc]
cmp dword [edx + 0xf0], 0
jne 0x4892cd
test esi, esi
jl 0x4892cd
cmp dword [esp + 0x84], 0
je 0x4892c3
mov eax, edx
jmp 0x4892b8
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov edi, dword [ecx]
lea ebx, [esp + 0x74]
push ebx
mov ebx, dword [eax + 0xc]
mov eax, dword [eax + 8]
push ebx
push eax
push edx
push ecx
mov ecx, dword [edi + 0x10]
call ecx
test eax, eax
je 0x489cc0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x74]
push edx
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, esi
call fcn.004a1a12
test eax, eax
je 0x489cc0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
cmp dword [ecx + 0xf0], 0
jne 0x4892cd
test esi, esi
jl 0x4892cd
cmp dword [esp + 0x84], 0
je 0x4892c3
mov eax, ecx
and dword [eax + 4], 0xefffffff
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
or dword [eax + 4], 0x400000
mov dword [esp + 0x74], 0
jmp case.0x487b4b.1
xor edx, edx
mov ecx, ebp
mov dword [esp + 0x24], 0x12
mov byte [esp + 0x28], 4
mov dword [esp + 0x38], 0xffffffff
call fcn.00481eab
mov edx, dword [esp + 0x44]
add ebx, 0xc
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x14]
add edx, 0xfffffff9
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], edx
mov dword [eax], 0
jmp 0x4896ed
xor edx, edx
mov ecx, ebp
mov dword [esp + 0x24], 0xe
mov byte [esp + 0x28], 4
mov dword [esp + 0x38], 0xfffffffe
call fcn.00481eab
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], ecx
mov dword [edx], 0x14
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, 0xfffffffe
call fcn.004865a8
test eax, eax
je 0x489cc0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov edx, dword [eax]
mov edx, dword [edx + 0x68]
push 0xfffffffffffffffe
push ecx
push eax
call edx
test eax, eax
mov eax, dword [esp + 0x10]
je 0x4893ca
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
lea esi, [esp + 0x24]
push esi
mov esi, dword [eax + 0xc]
mov eax, dword [eax + 8]
push esi
push eax
push 0xfffffffffffffffe
push ecx
mov ecx, dword [edx + 0xc]
call ecx
test eax, eax
jne case.0x487b4b.1
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x94
ret
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x24]
push edx
mov edx, dword [eax + 8]
push ecx
push edx
mov edx, 0xfffffffe
jmp 0x488ed4
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x20]
cmp eax, ecx
jb 0x489405
add ecx, 0x4000
cmp eax, ecx
ja 0x489405
mov ecx, dword [ebp + 0x28]
sub ecx, eax
sar ecx, 1
mov dword [esp + 0x18], ecx
mov esi, dword [ebp + 0x2c]
jmp 0x489412
lea edx, [esp + 0x18]
mov ecx, ebp
call fcn.004a1a12
mov esi, eax
xor edx, edx
mov ecx, ebp
mov dword [esp + 0x24], 0xf
mov byte [esp + 0x28], 4
mov dword [esp + 0x38], 0xfffffffe
call fcn.00481eab
mov edx, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], esi
mov dword [eax], 0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov edx, dword [eax]
mov edx, dword [edx + 0x68]
push 0xfffffffffffffffe
push ecx
push eax
call edx
test eax, eax
mov eax, dword [esp + 0x10]
je 0x489486
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
lea esi, [esp + 0x24]
push esi
mov esi, dword [eax + 0xc]
mov eax, dword [eax + 8]
push esi
push eax
push 0xfffffffffffffffe
push ecx
mov ecx, dword [edx + 0x10]
call ecx
jmp 0x488edc
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x24]
push edx
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, 0xfffffffe
call fcn.004a1a12
jmp 0x488edc
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x20]
cmp eax, ecx
jb 0x4894c9
add ecx, 0x4000
cmp eax, ecx
ja 0x4894c9
mov ecx, dword [ebp + 0x28]
sub ecx, eax
sar ecx, 1
mov dword [esp + 0x18], ecx
mov esi, dword [ebp + 0x2c]
jmp 0x4894d6
lea edx, [esp + 0x18]
mov ecx, ebp
call fcn.004a1a12
mov esi, eax
xor edx, edx
mov ecx, ebp
mov dword [esp + 0x24], 0x17
mov byte [esp + 0x28], 4
mov dword [esp + 0x38], 0xfffffffc
call fcn.00481eab
mov edx, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], esi
mov dword [eax], 0x1c
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [eax + 8]
push edx
push ecx
mov ecx, dword [eax + 4]
mov edx, 0xfffffffc
call fcn.004865a8
test eax, eax
je 0x489cc0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov edx, dword [eax]
mov edx, dword [edx + 0x68]
push 0xfffffffffffffffc
push ecx
push eax
call edx
test eax, eax
mov eax, dword [esp + 0x10]
je 0x489570
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
lea esi, [esp + 0x24]
push esi
mov esi, dword [eax + 0xc]
mov eax, dword [eax + 8]
push esi
push eax
push 0xfffffffffffffffc
push ecx
mov ecx, dword [edx + 0xc]
call ecx
jmp 0x488edc
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x24]
push edx
mov edx, dword [eax + 8]
push ecx
push edx
mov edx, 0xfffffffc
jmp 0x488ed4
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x20]
cmp eax, ecx
jb 0x4895ab
add ecx, 0x4000
cmp eax, ecx
ja 0x4895ab
mov ecx, dword [ebp + 0x28]
sub ecx, eax
sar ecx, 1
mov dword [esp + 0x18], ecx
mov esi, dword [ebp + 0x2c]
jmp 0x4895b8
lea edx, [esp + 0x18]
mov ecx, ebp
call fcn.004a1a12
mov esi, eax
xor edx, edx
mov ecx, ebp
mov dword [esp + 0x24], 0x18
mov byte [esp + 0x28], 4
mov dword [esp + 0x38], 0xfffffffc
call fcn.00481eab
mov edx, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], esi
mov dword [eax], 0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov edx, dword [eax]
mov edx, dword [edx + 0x68]
push 0xfffffffffffffffc
push ecx
push eax
call edx
test eax, eax
mov eax, dword [esp + 0x10]
je 0x48962c
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
lea esi, [esp + 0x24]
push esi
mov esi, dword [eax + 0xc]
mov eax, dword [eax + 8]
push esi
push eax
push 0xfffffffffffffffc
push ecx
mov ecx, dword [edx + 0x10]
call ecx
jmp 0x488edc
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x24]
push edx
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, 0xfffffffc
call fcn.004a1a12
jmp 0x488edc
mov ecx, dword [esp + 0x14]
mov dword [ecx], 0x25
jmp case.0x487b4b.1
lea edx, [esp + 0x18]
mov ecx, ebp
call fcn.004a1a12
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x14]
mov esi, eax
cmp dword [edi + 0x10], 0xfffffffd
jne 0x489682
add edx, 0xffffffec
cmp edx, 2
mov edi, 0x12
ja 0x489687
mov edi, 3
xor edx, edx
mov ecx, ebp
mov dword [esp + 0x24], edi
mov byte [esp + 0x28], 4
mov dword [esp + 0x38], 0xffffffff
call fcn.00481eab
mov edx, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], edx
test byte [ebp + 0x18], 2
je 0x4896c3
mov eax, dword [esp + 0x14]
mov dword [eax], 0
jmp 0x4896e8
mov eax, dword [esp + 0x44]
cmp eax, 0x12
je 0x4896d1
cmp eax, 0x13
jne 0x4896e8
test bl, 2
je 0x4896de
mov ecx, dword [esp + 0x14]
mov dword [ecx], eax
jmp 0x4896e8
mov edx, dword [esp + 0x14]
mov dword [edx], 0x10
cmp edi, 0x12
jne 0x48970a
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
call fcn.004a1a12
jmp 0x488edc
mov edx, dword [esp + 0x70]
mov eax, dword [edx + 4]
cmp dword [eax + 0x24], 0xffffffff
jne 0x489734
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax + 8]
call fcn.004a1a12
jmp 0x488edc
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
call fcn.0045bb8e
jmp 0x488edc
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x20]
cmp eax, ecx
jb 0x489775
add ecx, 0x4000
cmp eax, ecx
ja 0x489775
mov ecx, dword [ebp + 0x28]
sub ecx, eax
sar ecx, 1
mov dword [esp + 0x18], ecx
mov eax, dword [ebp + 0x2c]
jmp 0x489784
lea edx, [esp + 0x18]
mov ecx, ebp
call fcn.004a1a12
mov edx, dword [esp + 0x14]
movzx ecx, word [eax]
cmp ecx, 0xd
jg 0x4897e0
je 0x4897ce
sub ecx, 9
je 0x4897bc
sub ecx, 1
je 0x4897ce
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x24], ecx
or ecx, 0xffffffff
mov byte [esp + 0x28], 2
mov dword [esp + 0x38], ecx
movzx eax, word [eax]
cmp ax, 0xd
jne 0x4897ff
mov eax, 0xa
jmp 0x489802
mov ecx, dword [edx + 0x10]
sub ecx, 0xfffffffd
neg ecx
sbb ecx, ecx
and ecx, 0xfffffff0
add ecx, 0x15
jmp 0x48979c
mov ecx, dword [edx + 0x10]
sub ecx, 0xfffffffd
neg ecx
sbb ecx, ecx
and ecx, 0xfffffff3
add ecx, 0x13
jmp 0x48979c
cmp ecx, 0x20
je 0x4897ed
cmp ecx, 0x3000
jne 0x489798
mov ecx, dword [edx + 0x10]
sub ecx, 0xfffffffd
neg ecx
sbb ecx, ecx
and ecx, 0xfffffff3
add ecx, 0x14
jmp 0x48979c
movzx eax, ax
mov dword [esp + 0x34], eax
cmp dword [edx + 0x10], 0xfffffffd
jne 0x489829
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x24]
push edx
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
call fcn.004a1a12
jmp 0x488edc
mov edx, dword [esp + 0x70]
mov eax, dword [edx + 4]
cmp dword [eax + 0x24], ecx
jne 0x489734
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax + 8]
call fcn.004a1a12
jmp 0x488edc
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x20]
cmp eax, ecx
jb 0x48987a
add ecx, 0x4000
cmp eax, ecx
ja 0x48987a
mov edx, dword [ebp + 0x28]
sub edx, eax
sar edx, 1
mov dword [esp + 0x18], edx
mov ebx, dword [ebp + 0x2c]
jmp 0x48988b
lea edx, [esp + 0x18]
mov ecx, ebp
call fcn.004a1a12
mov edx, dword [esp + 0x18]
mov ebx, eax
mov eax, dword [esp + 0x14]
sub edx, 1
mov dword [esp + 0x18], edx
mov edi, dword [eax + 0x10]
sub edi, 0xfffffffd
add ebx, 2
neg edi
sbb edi, edi
and edi, 0xfffffff6
add edi, 0x16
test edx, edx
je 0x489b4c
cmp word [ebx], 0x23
jne 0x489a3d
cmp edx, 1
je 0x489b4c
movzx eax, word [ebx + 2]
mov ecx, 0x3b
cmp ax, cx
je 0x489b4c
movzx esi, ax
or esi, 0x20
sub esi, 0x61
cmp esi, 0x19
ja 0x489969
or eax, 0x20
cmp ax, 0x78
jne 0x489b4c
cmp edx, 2
je 0x489b4c
cmp word [ebx + 4], cx
lea esi, [ebx + 4]
je 0x489b4c
cmp edx, 9
jg 0x489b4c
jne 0x489920
cmp word [ebx + 0x10], cx
jne 0x489b4c
lea edx, [ebx + edx*2]
xor eax, eax
cmp word [edx - 2], cx
jne 0x48992e
add edx, 0xfffffffe
cmp esi, edx
jae 0x489a23
movzx ecx, word [esi]
movzx ecx, cx
lea ebp, [ecx - 0x30]
shl eax, 4
cmp ebp, 9
ja 0x48994d
lea eax, [eax + ecx - 0x30]
jmp 0x489960
or ecx, 0x20
lea ebp, [ecx - 0x61]
cmp ebp, 5
ja 0x489b4c
lea eax, [eax + ecx - 0x57]
add esi, 2
cmp esi, edx
jb 0x489936
jmp 0x48997a
add ebx, 2
sub edx, 1
mov ecx, ebx
mov dword [esp + 0x18], edx
call fcn.004a1a12
cmp eax, 0xffff
jle 0x489a23
mov ecx, dword [esp + 0x20]
lea esi, [ecx + 0x10]
add ecx, 0x12
push ecx
push esi
push eax
call fcn.0048ff82
test eax, eax
je 0x489b4c
mov ecx, dword [esp + 0x20]
or ebx, 0xffffffff
xor edx, edx
mov dword [esp + 0x24], 3
mov byte [esp + 0x28], 4
mov dword [esp + 0x38], ebx
call fcn.00481eab
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], 2
cmp dword [ecx + 0x14], ebx
jne 0x4899fd
cmp edi, 0x16
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x24]
push edx
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
jne 0x48972a
call fcn.004a1a12
jmp 0x488edc
cmp dword [esp + 0x50], 0
je case.0x487b4b.1
mov eax, dword [esp + 0x10]
push 2
lea edx, [eax + 0x14]
push esi
push edx
lea edx, [eax + 0x18]
lea ecx, [eax + 0x10]
call fcn.00487712
jmp 0x488edc
mov dword [esp + 0x24], edi
mov byte [esp + 0x28], 2
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x34], eax
jmp 0x489b81
xor eax, eax
cmp word [ebx + edx*2 - 2], 0x3b
mov ecx, ebx
sete al
mov ebp, eax
sub edx, ebp
call fcn.00483443
mov esi, eax
cmp esi, 0xffffffff
je 0x489a7e
test ebp, ebp
jne 0x489a6c
mov ecx, esi
call fcn.00483463
cmp eax, 0xff
jg 0x489a7e
mov dword [esp + 0x24], edi
mov byte [esp + 0x28], 0
mov dword [esp + 0x38], esi
jmp 0x489b81
cmp dword [esp + 0x18], 5
jne 0x489b4c
mov eax, 0xa
mov ecx, 0x436288
mov edx, ebx
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x489aad
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x489a95
test eax, eax
je 0x489b0a
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x489afc
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x489b0a
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x489afc
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x489b0a
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x489afc
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x489b0a
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x489b0a
test esi, esi
mov eax, 1
jg 0x489b0c
or eax, 0xffffffff
jmp 0x489b0c
xor eax, eax
test eax, eax
jne 0x489b4c
mov edx, dword [esp + 0x14]
cmp dword [edx + 0x10], 0xfffffffd
jne 0x489b4c
mov ecx, dword [esp + 0x20]
xor edx, edx
mov dword [esp + 0x24], edi
mov byte [esp + 0x28], 4
mov dword [esp + 0x38], 0xffffffff
call fcn.00481eab
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], 0x436284
mov dword [esp + 0x30], 1
jmp 0x489b81
mov ecx, dword [esp + 0x20]
xor edx, edx
mov dword [esp + 0x24], edi
mov byte [esp + 0x28], 4
mov dword [esp + 0x38], 0xffffffff
call fcn.00481eab
sub eax, 1
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x18]
add ebx, 0xfffffffe
add eax, 1
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x14], 0xffffffff
jne 0x489bb7
cmp edi, 0x16
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x24]
push edx
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
jne 0x489bad
call fcn.004a1a12
jmp 0x488edc
call fcn.004a1a12
jmp 0x488edc
cmp dword [esp + 0x50], 0
je case.0x487b4b.1
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x24]
call fcn.00487853
jmp 0x488edc
cmp dword [esp + 0x50], 0
mov dword [esp + 0x24], 0xa
mov byte [esp + 0x28], 0
mov dword [esp + 0x38], 0xffffffff
je 0x489c34
mov edx, dword [esp + 0x14]
cmp dword [edx], 0xa
jne 0x489c1d
mov eax, dword [esp + 0x10]
push 1
lea ecx, [eax + 0x14]
push 0x436280
push ecx
lea edx, [eax + 0x18]
lea ecx, [eax + 0x10]
call fcn.00487712
test eax, eax
je 0x489cc0
jmp 0x489c34
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x10]
mov word [eax], 0
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x18], 0
cmp dword [esp + 0x98], 0
jne case.0x487b4b.1
mov edx, dword [esp + 0x14]
mov dword [edx], 0xe
jmp case.0x487b4b.1
mov eax, dword [esp + 0x14]
cmp dword [eax], 0xe
jne 0x489c6e
cmp dword [esp + 0x98], 0
jne 0x489c6e
mov dword [eax], 0xa
mov eax, dword [esp + 0x14]
cmp dword [eax], 0x21
jne case.0x487b4b.1
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 8]
test eax, 0x800
je case.0x487b4b.1
test eax, 0x200
jne case.0x487b4b.1
mov ecx, dword [ecx + 0xc]
mov eax, dword [esp + 0x20]
mov dword [ecx + 0x13c], 0xd
or dword [eax + 0x18], 0x80
cmp dword [esp + 0x50], 0
je 0x489cc0
lea edx, [esp + 0x50]
push edx
call fcn.004a1a12
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x94
ret
lea edx, [esp + 0x50]
mov ecx, ebp
mov dword [esp + 0x50], 0
call fcn.0048705f
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret
mov edx, dword [ecx + 0xc]
mov dword [edx + 0x13c], 3
or dword [ebp + 0x18], 0x80
cmp dword [esp + 0x50], 0
je 0x489cc0
lea eax, [esp + 0x50]
push eax
jmp 0x489cbb
mov dword [esp + 0x50], 0
or dword [ebp + 0x18], 0x80
cmp dword [esp + 0x50], 0
je 0x489cc0
lea ecx, [esp + 0x50]
push ecx
jmp 0x489cbb