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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x150
push ebx
push esi
push edi
mov edi, edx
mov eax, ecx
mov dword [ebp - 0x38], edi
mov dword [ebp - 8], eax
test edi, edi
je 0x4847c8
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x40], 0
mov eax, dword [ebx]
mov ecx, dword [ebx + 0x50]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x20], ecx
cmp eax, dword [ebx + 4]
jae 0x48ce7b
inc eax
mov dword [ebx], eax
mov eax, dword [ebp + 0x18]
cmp eax, dword [ebx + 8]
jae 0x48ce71
cmp dword [ebx + 0x9c], 2
je 0x4847f9
lea esp, [esp]
movzx ecx, word [edi]
xor edx, edx
mov esi, ecx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x2c], edx
cmp esi, 0x9b
ja case.0x40a5a0.98
movzx eax, byte [esi + 0x40b0c0]
jmp dword [eax*4 + 0x40af78]
cmp esi, 0x82
jae 0x48ad24
cmp esi, 0x7b
je 0x48ad24
cmp dword [ebx + 0x70], 0
jne 0x40aea4
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
je 0x40aea4
movzx eax, word [edi]
movzx eax, byte [eax + 0x49f530]
lea edi, [edi + eax*2]
mov dword [ebp - 0x38], edi
mov eax, dword [ebx + 0x50]
mov dword [ebp - 0x20], eax
mov eax, dword [ebx]
cmp eax, dword [ebx + 4]
jb 0x40a560
jmp 0x48ce7b
movzx eax, word [edi + 2]
add eax, eax
mov esi, edi
sub esi, eax
mov ecx, 0x82
movzx eax, word [esi]
mov dword [ebp - 0x18], esi
cmp ax, cx
jae 0x4854d5
cmp eax, 0x7b
je 0x4854d5
xor ecx, ecx
mov dword [ebp - 0x10], ecx
cmp eax, 0x7a
jbe 0x4854e5
cmp eax, 0x7f
je 0x40aa43
cmp eax, 0x7c
je 0x4854ee
mov edx, 0x84
cmp ax, dx
je 0x40aa43
mov edx, 0x80
cmp ax, dx
je 0x40aa43
mov edx, 0x85
cmp ax, dx
je 0x40aa43
mov edx, dword [ebp + 0xc]
cmp word [edi], 0x72
jne 0x485574
cmp word [esi], 0x7b
je 0x48aea7
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x40a580
mov edx, dword [ebp - 8]
mov edi, dword [ebp + 8]
cmp edx, edi
je 0x48ce17
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x84], edx
mov dword [ebx + 0x90], eax
mov dword [ebx + 0x80], edi
test esi, esi
jne 0x48ce5d
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx ecx, word [edi + 0x22]
lea eax, [edi + 2]
add edi, 0x22
mov dword [ebp - 0x1c], eax
mov eax, ecx
mov dword [ebp - 0x38], edi
cmp eax, 0x69
jle 0x40adfe
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x18], 1
mov eax, 1
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x48667d
mov dword [ebp - 0x28], 1
cmp eax, 1
jl 0x40ae5a
mov ecx, dword [ebx + 0x7c]
lea esp, [esp]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x40ade4
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x30], ecx
cmp eax, 0xd800
je 0x486647
cmp ecx, 0xff
ja 0x48666f
mov ebx, dword [ebp - 0x1c]
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x30]
shr ecx, 3
test byte [ecx + ebx], al
mov ebx, dword [ebp + 0x10]
jne 0x40a881
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebx + 0x7c]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x28], esi
cmp eax, esi
jae 0x40adf6
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x40a7ae
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x486405
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x40a7d0
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d2]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 8]
cmp eax, esi
jae 0x40a869
mov edi, dword [ebp - 0x20]
mov ebx, eax
movzx ecx, word [ebx]
mov esi, 1
test edi, edi
je 0x40a80f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x48642a
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x40a831
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x30]
add eax, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx ecx, byte [eax*8 + 0x4ac0d2]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x49f454], eax
jne 0x40a946
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x38]
mov dword [ebp - 8], ebx
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x8c], 0
jne 0x48644e
add edi, 2
mov dword [ebp - 0x38], edi
jmp 0x40a580
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebx + 0x7c]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, dword [ebp - 0x34]
jle 0x40a720
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x18]
cmp dword [ebp - 0x34], ebx
mov ebx, dword [ebp + 0x10]
je 0x40a580
test edx, edx
jne 0x48b011
mov dword [ebp - 0x40], eax
test ecx, ecx
je 0x48b255
mov ecx, dword [ebp - 0x18]
cmp dword [ebp - 0x34], ecx
jge 0x40a91b
mov dword [ebp - 0xc], 1
cmp eax, dword [ebx + 0x7c]
jae 0x48b1d9
movzx ecx, word [eax]
mov edx, dword [ebp - 8]
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x10], ecx
cmp eax, 0xd800
je 0x48b1a2
cmp ecx, 0xff
ja 0x48b1cb
shr dword [ebp - 0x10], 3
mov ebx, dword [ebp - 0x10]
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x1c]
test byte [ebx + ecx], al
mov ebx, dword [ebp + 0x10]
jne 0x40af1b
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
jmp 0x48b20b
lea ebx, [ebx + esi*2]
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x30], ecx
cmp ebx, esi
jb 0x40a7f1
jmp 0x40a85d
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40adf6
cmp dword [ebp - 0x20], edx
je 0x486976
movzx esi, word [edi + 2]
add edi, 2
mov eax, esi
and eax, 0xfc00
mov edx, 1
cmp eax, 0xd800
je 0x4868c6
mov eax, dword [ebp - 8]
movzx ecx, word [eax]
cmp esi, 0x80
jae 0x4868ea
cmp ecx, 0xff
ja 0x40a9b0
mov eax, dword [ebx + 0x3c]
movzx ecx, byte [eax + ecx]
mov eax, dword [ebx + 0x3c]
movzx eax, byte [eax + esi]
cmp eax, ecx
jne case.0x40a5a0.151
add edi, 2
add dword [ebp - 8], 2
mov dword [ebp - 0x38], edi
jmp 0x40a580
mov edx, dword [ebx + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, edx
jae 0x40ade4
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 8], eax
je 0x40aa00
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [ebp - 8]
je 0x485edd
cmp ecx, 0xe
jb 0x40aa11
cmp ecx, 0x85
jb case.0x40a5a0.151
cmp ecx, 0xd
ja 0x485f4e
jne 0x485f02
cmp eax, edx
jae 0x485f1c
cmp word [eax], 0xa
jne 0x40a876
add eax, 2
add edi, 2
mov dword [ebp - 8], eax
mov dword [ebp - 0x38], edi
jmp 0x40a580
movzx ecx, word [esi + 4]
mov eax, dword [ebx + 0xa8]
mov dword [ebp - 0xc], ecx
lea edx, [ecx + ecx]
test eax, eax
jne 0x48550e
mov eax, dword [ebx + 0x94]
and eax, 0xffff0000
or eax, ecx
mov dword [ebx + 0x94], eax
cmp edx, dword [ebx + 0x14]
jge 0x485533
mov ecx, dword [ebp + 0xc]
cmp edx, ecx
jg 0x485546
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
sub eax, dword [ebp - 0xc]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [ebp - 8]
sub ecx, dword [ebx + 0x78]
mov eax, dword [ebx + 0xc]
sar ecx, 1
mov dword [eax + edx*4 + 4], ecx
mov ecx, dword [ebp - 0x10]
cmp dword [ebp + 0xc], edx
jg 0x40a675
add edx, 2
mov dword [ebp + 0xc], edx
jmp 0x40a678
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40adf6
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 0x30], ecx
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x40aae6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x486221
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0x30]
sar eax, 7
movzx ecx, byte [eax + 0x4ad470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x40ab0c
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
movzx ecx, word [edi + 2]
cmp ecx, 9
jne 0x486249
movzx eax, word [edi + 4]
mov ecx, dword [eax*4 + 0x4af670]
lea eax, [eax*4 + 0x4af670]
cmp edx, ecx
jb 0x4863f7
lea ecx, [ecx]
lea eax, [eax + 4]
cmp edx, ecx
je 0x40ab52
mov ecx, dword [eax]
cmp edx, ecx
jae 0x40ab40
jmp 0x4863f7
cmp esi, 0x10
jne case.0x40a5a0.151
add edi, 6
mov dword [ebp - 0x38], edi
jmp 0x40a580
cmp dword [ebp - 0x20], edx
je 0x486897
mov ax, word [edi + 2]
add edi, 2
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xd800
mov esi, 1
mov dword [ebp - 0x38], edi
cmp ax, cx
je 0x40af65
mov eax, dword [ebx + 0x7c]
mov edx, dword [ebp - 8]
sub eax, edx
sar eax, 1
cmp esi, eax
jg 0x48b47b
test esi, esi
jle 0x40a580
mov edi, edi
mov cx, word [edi]
mov ax, word [edx]
add edx, 2
add edi, 2
dec esi
mov dword [ebp - 8], edx
mov dword [ebp - 0x38], edi
cmp cx, ax
jne case.0x40a5a0.151
test esi, esi
jle 0x40a580
jmp 0x40abb0
movzx edx, word [edi + 4]
mov dword [ebp - 0xc], edx
lea eax, [edx + edx]
cmp eax, dword [ebx + 0x14]
jge case.0x40a5a0.123
mov ecx, dword [ebx + 0xc]
mov edx, dword [ecx + eax*4]
mov eax, dword [ecx + eax*4 + 4]
mov dword [ebp - 0x40], eax
mov eax, dword [ebx + 0x10]
sub eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], edx
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 0x94]
mov dword [ebp - 0x30], eax
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 8]
sub eax, dword [ebx + 0x78]
sar eax, 1
mov dword [ecx], eax
cmp esi, 0x82
jae 0x48cb14
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x49f530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.0040a520
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc1b
je 0x48cb6b
cmp edx, 0xfffffc20
je 0x48cb23
test edx, edx
je 0x48cb48
pop edi
pop esi
mov eax, edx
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esi - 0x55]
add edi, 2
test cl, 1
je 0x40af6f
mov eax, 1
movsx esi, byte [ecx + 0x49f520]
movsx ecx, byte [ecx + 0x49f528]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x40acb7
mov dword [ebp - 0x1c], SysAllocStringLen
movzx ecx, word [edi]
add edi, 2
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x38], edi
cmp ecx, 0x10
je 0x487839
cmp ecx, 0xf
je 0x487830
or ecx, 0xffffffff
mov dword [ebp - 0x30], ecx
test esi, esi
jg 0x487858
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 8]
mov edx, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x24]
je 0x40a580
test eax, eax
mov eax, dword [ebp - 0x30]
je 0x489133
test eax, eax
jns 0x48b888
mov eax, dword [ebp + 0x18]
inc eax
cmp dword [ebp - 0x34], 0x16
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
je 0x48c27f
test ecx, ecx
mov ecx, esi
je 0x48c777
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge case.0x40a5a0.151
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x48b349
cmp dword [ebp - 0x34], 0xc
jne 0x40ad87
cmp dword [ebx + 0x18], 0
je 0x48c428
push dword [ebp - 0x20]
lea eax, [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.00409126
add esp, 0xc
test eax, eax
jne case.0x40a5a0.151
mov ecx, dword [ebp - 0x14]
movzx edx, word [esi]
mov eax, edx
and eax, 0xfc00
add esi, 2
cmp eax, 0xd800
je 0x48c461
mov eax, dword [ebp - 0x34]
cmp eax, 0xc
jne 0x48c482
cmp dword [ebx + 0x8c], 0
jne 0x48c735
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x14], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
jmp 0x40ad40
cmp dword [ebx + 0x8c], 0
je case.0x40a5a0.151
jmp 0x48b006
cmp dword [ebx + 0x8c], edx
jmp 0x40adeb
sub eax, 0x62
cmp eax, 7
ja case.default.0x40ae11
movzx eax, byte [eax + 0x40b164]
jmp dword [eax*4 + 0x40b15c]
add ecx, 0xffffff9e
add edi, 2
mov dword [ebp - 0x38], edi
test cl, 1
jne 0x40af5b
xor eax, eax
mov dword [ebp - 0x2c], eax
movsx eax, byte [ecx + 0x49f520]
movsx ecx, byte [ecx + 0x49f528]
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x40a6fb
mov dword [ebp - 0x18], SysAllocStringLen
jmp 0x40a6fb
mov eax, dword [ebp - 8]
jmp 0x40a89a
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je case.0x40a5a0.113
mov dword [ebp - 0x38], edi
jmp 0x40a580
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
add edi, 2
push ebx
push dword [ebp + 0xc]
mov edx, edi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
jmp 0x4851e1
mov eax, dword [ebx + 0xb0]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 0x94]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x49f530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.0040a520
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc20
je 0x48ad33
test edx, edx
jne 0x48cb97
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0xb0], eax
cmp word [edi], 0x71
jne case.0x40a5a0.151
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0x94], eax
jmp case.0x40a5a0.123
mov eax, dword [ebp - 0xc]
lea edx, [edx + eax*2]
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 8], edx
mov dword [ebp - 0x34], eax
cmp eax, dword [ebp - 0x18]
jge 0x40a91b
mov eax, edx
jmp 0x40a8c4
mov dword [ebp - 0x10], edx
jmp 0x485275
add edi, 2
jmp 0x48523a
mov eax, dword [ebp - 8]
jmp 0x485607
mov esi, dword [ebp - 0x20]
jmp 0x485c1c
mov eax, 1
jmp 0x40ae2c
mov esi, 2
jmp 0x40ab94
xor eax, eax
jmp 0x40ac95
cmp dword [ebp + 0x18], 0
lea ecx, [ebp + 0x18]
jne 0x4847ea
push 1
push 0
push 0
push 0
push 0
xor edx, edx
call fcn.0040a520
add esp, 0x14
jmp 0x40a6c7
sub ecx, eax
test ecx, ecx
jle 0x4847f2
neg ecx
mov eax, ecx
jmp 0x40a6c7
mov eax, dword [ebp - 8]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x60]
mov dword [ebp + 0x14], eax
mov dword [ebx + 0x9c], 0
jmp 0x40a580
inc dword [ebx + 0x28]
mov eax, dword [ebx + 0x28]
cmp eax, dword [ebx + 0x2c]
ja 0x48ad5f
movzx eax, word [edi]
movzx ecx, byte [eax + 0x49f530]
movzx eax, word [edi + 2]
add ecx, eax
lea edi, [edi + ecx*2]
mov dword [ebp - 0x38], edi
jmp 0x40a580
mov eax, dword [ebp - 8]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
lea edx, [edi + 4]
push ebx
push dword [ebp + 0xc]
push esi
call fcn.0040a520
add esp, 0x14
cmp eax, 1
je 0x4848c8
cmp eax, 0xfffffc20
jne 0x4848a5
movzx ecx, word [edi + 2]
lea ecx, [edi + ecx*2]
cmp dword [ebx + 0x80], ecx
jae 0x40a6c7
cmp word [edi], 0x71
je 0x4848ad
cmp word [ecx], 0x71
jne 0x40a6c7
jmp 0x4848ad
test eax, eax
jne 0x40a6c7
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0xb0], eax
cmp word [edi], 0x71
je 0x484859
mov ecx, dword [ebp + 8]
jmp 0x4848d1
mov ecx, dword [ebx + 0x80]
mov dword [ebp + 8], ecx
movzx eax, word [edi]
cmp eax, 0x7c
je 0x4848e2
cmp eax, 0x71
jne case.0x40a5a0.151
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x4848e2
cmp word [edi], 0x72
mov edx, dword [ebx + 0x90]
mov eax, dword [ebx + 0x84]
mov dword [ebp + 0xc], edx
mov dword [ebp - 8], eax
je 0x4870b3
cmp eax, dword [ebp - 0x28]
jne 0x48abae
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x40a580
cmp word [edi + 4], 0x70
movzx eax, word [edi + 2]
mov dword [ebp - 0x10], eax
jne 0x4849f6
mov ecx, dword [0x4c44ec]
test ecx, ecx
je 0x4849ed
mov dword [ebp - 0xa0], 2
movzx eax, word [edi + 6]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x98], eax
mov eax, dword [ebx + 0x78]
mov dword [ebp - 0x94], eax
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebx + 0x78]
sar eax, 1
mov dword [ebp - 0x90], eax
mov eax, dword [ebp + 8]
sub eax, dword [ebx + 0x78]
sar eax, 1
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 8]
sub eax, dword [ebx + 0x78]
sar eax, 1
mov dword [ebp - 0x88], eax
movzx eax, word [edi + 8]
mov dword [ebp - 0x78], eax
movzx eax, word [edi + 0xa]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 0xc]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x84], eax
movzx eax, word [ebx + 0x94]
or edx, 0xffffffff
test eax, eax
cmove eax, edx
mov dword [ebp - 0x80], eax
mov eax, dword [ebx + 0xac]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebx + 0xb4]
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0xa0]
push eax
call ecx
add esp, 4
test eax, eax
jg case.0x40a5a0.151
js 0x40a6c7
mov eax, dword [ebp - 0x10]
add edi, 8
sub eax, 4
mov dword [ebp - 0x10], eax
movzx ecx, word [edi + 4]
lea edx, [edi + 4]
cmp ecx, 0x89
je 0x484ba9
cmp ecx, 0x8a
je 0x484ba9
cmp ecx, 0x87
je 0x484a7f
cmp ecx, 0x88
je 0x484a7f
cmp ecx, 0x8b
jne 0x484a39
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
jmp 0x484ce0
mov ecx, dword [ebp - 8]
mov dword [ebx + 0x9c], 1
mov eax, dword [ebp + 0x18]
inc eax
push eax
push 0
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
cmp eax, 1
je 0x48abf8
test eax, eax
je 0x484a74
cmp eax, 0xfffffc20
jne 0x40a6c7
mov eax, dword [ebp - 0x10]
lea edi, [edi + eax*2]
jmp 0x484ce0
movzx edx, word [edi + 6]
add edx, edx
cmp edx, dword [ebp + 0xc]
jge 0x484a97
mov eax, dword [ebx + 0xc]
cmp dword [eax + edx*4], 0
jge 0x484ccb
xor eax, eax
mov dword [ebp - 0x18], eax
cmp ecx, 0x88
jne 0x484cc5
mov ecx, dword [ebx + 0x30]
sar edx, 1
mov dword [ebp - 0xc], edx
xor edx, edx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x10], edx
cmp dword [ebx + 0x20], eax
jle 0x484ada
movzx eax, word [ecx]
cmp eax, dword [ebp - 0xc]
je 0x484ad1
mov eax, dword [ebx + 0x24]
inc edx
lea ecx, [ecx + eax*2]
cmp edx, dword [ebx + 0x20]
jl 0x484abd
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x34], ecx
cmp edx, dword [ebx + 0x20]
jge 0x484cc5
mov dword [ebp - 0x38], ecx
cmp ecx, dword [ebx + 0x30]
jbe 0x484b42
mov eax, dword [ebx + 0x24]
add eax, eax
add ecx, 2
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x30], eax
sub ecx, eax
mov dword [ebp - 0x38], ecx
lea edx, [ecx + 2]
mov ecx, dword [ebp - 0xc]
call fcn.00472499
test eax, eax
jne 0x484b39
mov ecx, dword [ebp - 0x38]
movzx edx, word [ecx]
add edx, edx
cmp edx, dword [ebp + 0xc]
jge 0x484b2a
mov eax, dword [ebx + 0xc]
cmp dword [eax + edx*4], 0
jge 0x484ccb
xor eax, eax
mov dword [ebp - 0x18], eax
cmp ecx, dword [ebx + 0x30]
jbe 0x484b3c
mov eax, dword [ebp - 0x30]
jmp 0x484afc
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x34]
inc edx
mov dword [ebp - 0x10], edx
cmp edx, dword [ebx + 0x20]
jge 0x484cc5
mov eax, dword [ebx + 0x24]
add eax, eax
lea edx, [ecx + 2]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0xc], edx
add ecx, eax
mov dword [ebp - 0x34], ecx
lea edx, [ecx + 2]
mov ecx, dword [ebp - 0xc]
call fcn.00472499
test eax, eax
jne 0x484cc2
mov ecx, dword [ebp - 0x34]
movzx edx, word [ecx]
add edx, edx
cmp edx, dword [ebp + 0xc]
jge 0x484b8f
mov eax, dword [ebx + 0xc]
cmp dword [eax + edx*4], 0
jge 0x484ccb
mov edx, dword [ebp - 0x10]
inc edx
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], edx
cmp edx, dword [ebx + 0x20]
jge 0x484cc5
mov eax, dword [ebp - 0x30]
jmp 0x484b5d
mov edx, dword [ebx + 0xa8]
test edx, edx
jne 0x484bbf
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
jmp 0x484ce0
movzx eax, word [edi + 6]
mov dword [ebp - 0xc], eax
cmp eax, 0xffff
je 0x484ccb
mov edx, dword [edx + 4]
mov dword [ebp - 0x30], edx
cmp eax, edx
je 0x484ccb
xor eax, eax
mov dword [ebp - 0x18], eax
cmp ecx, 0x8a
jne 0x484cc5
mov ecx, dword [ebx + 0x30]
xor edx, edx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x10], edx
cmp dword [ebx + 0x20], eax
jle 0x484c1d
movzx eax, word [ecx]
cmp eax, dword [ebp - 0xc]
je 0x484c14
mov eax, dword [ebx + 0x24]
inc edx
lea ecx, [ecx + eax*2]
cmp edx, dword [ebx + 0x20]
jl 0x484c00
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x34], ecx
cmp edx, dword [ebx + 0x20]
jge 0x484cc5
mov dword [ebp - 0x38], ecx
cmp ecx, dword [ebx + 0x30]
jbe 0x484c76
mov eax, dword [ebx + 0x24]
add eax, eax
add ecx, 2
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x28], eax
sub ecx, eax
mov dword [ebp - 0x38], ecx
lea edx, [ecx + 2]
mov ecx, dword [ebp - 0xc]
call fcn.00472499
test eax, eax
jne 0x484c6d
mov ecx, dword [ebp - 0x38]
movzx eax, word [ecx]
cmp eax, dword [ebp - 0x30]
je 0x484ccb
xor eax, eax
mov dword [ebp - 0x18], eax
cmp ecx, dword [ebx + 0x30]
jbe 0x484c70
mov eax, dword [ebp - 0x28]
jmp 0x484c3f
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x34]
inc edx
mov dword [ebp - 0x10], edx
cmp edx, dword [ebx + 0x20]
jge 0x484cc5
mov eax, dword [ebx + 0x24]
add eax, eax
lea edx, [ecx + 2]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xc], edx
add ecx, eax
mov dword [ebp - 0x34], ecx
lea edx, [ecx + 2]
mov ecx, dword [ebp - 0xc]
call fcn.00472499
test eax, eax
jne 0x484cc2
mov ecx, dword [ebp - 0x34]
movzx eax, word [ecx]
cmp eax, dword [ebp - 0x30]
je 0x484ccb
mov edx, dword [ebp - 0x10]
inc edx
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], edx
cmp edx, dword [ebx + 0x20]
jge 0x484cc5
mov eax, dword [ebp - 0x28]
jmp 0x484c8d
mov eax, dword [ebp - 0x18]
movzx ecx, word [edi + 2]
jmp 0x484cd5
mov ecx, 2
mov eax, 1
lea edi, [edi + ecx*2]
test eax, eax
jne 0x48ac29
cmp word [edi], 0x71
je 0x48ac29
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x40a580
movzx esi, word [edi + 2]
mov eax, dword [ebx + 0x94]
and eax, 0xffff0000
or eax, esi
lea edx, [esi + esi]
mov dword [ebx + 0x94], eax
cmp edx, dword [ebx + 0x14]
jl 0x484d2a
or eax, 0x10000
add edi, 4
mov dword [ebx + 0x94], eax
mov dword [ebp - 0x38], edi
jmp 0x40a580
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
sub eax, esi
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [ebp - 8]
sub ecx, dword [ebx + 0x78]
mov eax, dword [ebx + 0xc]
sar ecx, 1
mov dword [eax + edx*4 + 4], ecx
cmp dword [ebp + 0xc], edx
jg 0x484d52
lea eax, [edx + 2]
mov dword [ebp + 0xc], eax
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x40a580
cmp dword [ebx + 0x9c], 1
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0xc], eax
jne 0x484d7c
mov esi, 1
mov dword [ebx + 0x9c], edx
jmp 0x484d7e
xor esi, esi
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push 0
push ebx
push dword [ebp + 0xc]
lea edx, [edi + 4]
push dword [ebp + 8]
call fcn.0040a520
mov ecx, eax
add esp, 0x14
cmp ecx, 1
je 0x484df7
cmp ecx, 0xfffffc19
je 0x484df7
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0xb0], eax
cmp ecx, 0xfffffc20
jne 0x484ddf
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
cmp dword [ebx + 0x80], eax
jae 0x4847f2
cmp word [edi], 0x71
je 0x484de7
cmp word [eax], 0x71
jne 0x4847f2
jmp 0x484de7
test ecx, ecx
jne 0x4847f2
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x484d7e
jmp 0x484e00
mov eax, dword [ebx + 0x80]
mov dword [ebp + 8], eax
cmp word [edi], 0x72
je case.0x40a5a0.151
test esi, esi
jne 0x40a6c2
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x484e12
mov eax, dword [ebx + 0x90]
add edi, 4
mov dword [ebp - 0x38], edi
mov dword [ebp + 0xc], eax
jmp 0x40a580
cmp dword [ebx + 0x9c], 1
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0xc], eax
jne 0x484e53
mov esi, 1
mov dword [ebx + 0x9c], edx
jmp 0x484e55
xor esi, esi
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push 0
push ebx
push dword [ebp + 0xc]
lea edx, [edi + 4]
push dword [ebp + 8]
call fcn.0040a520
mov ecx, eax
mov eax, dword [ebp - 0xc]
add esp, 0x14
mov dword [ebx + 0xb0], eax
cmp ecx, 0xfffffc20
jg 0x484eb1
jne 0x484ec6
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
cmp dword [ebx + 0x80], eax
jae 0x484ee1
cmp word [edi], 0x71
je 0x484ea1
cmp word [eax], 0x71
jne 0x484ee1
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x484e55
jmp 0x484eef
mov eax, ecx
sub eax, 0
je 0x484ea1
dec eax
je case.0x40a5a0.151
mov eax, ecx
jmp 0x40a6c7
cmp ecx, 0xfffffc19
je case.0x40a5a0.151
lea eax, [ecx + 0x3e4]
cmp eax, 3
ja 0x4847f2
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x484ee1
test esi, esi
jne 0x40a6c2
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x40a580
cmp dword [ebp - 0x20], edx
je 0x484f46
movzx ecx, word [edi + 2]
test ecx, ecx
jle 0x484f60
mov eax, dword [ebp - 8]
sub eax, 2
dec ecx
mov dword [ebp - 8], eax
cmp eax, dword [ebx + 0x78]
jb case.0x40a5a0.151
mov ax, word [eax]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [ebp - 8]
jne 0x484f40
sub eax, 2
mov dword [ebp - 8], eax
test ecx, ecx
jg 0x484f0f
jmp 0x484f63
movzx eax, word [edi + 2]
mov ecx, dword [ebp - 8]
neg eax
lea ecx, [ecx + eax*2]
mov eax, ecx
mov dword [ebp - 8], ecx
cmp eax, dword [ebx + 0x78]
jb case.0x40a5a0.151
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x88]
jae 0x484f71
mov dword [ebx + 0x88], eax
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x40a580
mov ecx, dword [0x4c44ec]
test ecx, ecx
je 0x485043
mov dword [ebp - 0xd4], 2
movzx eax, word [edi + 2]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebx + 0x78]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebx + 0x78]
sar eax, 1
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp + 8]
sub eax, dword [ebx + 0x78]
sar eax, 1
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 8]
sub eax, dword [ebx + 0x78]
sar eax, 1
mov dword [ebp - 0xbc], eax
movzx eax, word [edi + 4]
mov dword [ebp - 0xac], eax
movzx eax, word [edi + 6]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp + 0xc]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0xb8], eax
movzx eax, word [ebx + 0x94]
or edx, 0xffffffff
test eax, eax
cmove eax, edx
mov dword [ebp - 0xb4], eax
mov eax, dword [ebx + 0xac]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebx + 0xb4]
mov dword [ebp - 0xa4], eax
lea eax, [ebp - 0xd4]
push eax
call ecx
add esp, 4
test eax, eax
jg case.0x40a5a0.151
js 0x40a6c7
add edi, 8
mov dword [ebp - 0x38], edi
jmp 0x40a580
movzx eax, word [edi + 2]
mov ecx, dword [ebx + 0x74]
lea esi, [ecx + eax*2]
cmp esi, ecx
jne 0x485060
xor edx, edx
jmp 0x485064
movzx edx, word [esi + 4]
mov ecx, dword [ebx + 0xa8]
test ecx, ecx
je 0x48508b
mov eax, dword [ebp - 8]
cmp edx, dword [ecx + 4]
jne 0x485085
cmp eax, dword [ecx + 0x14]
jne 0x485085
mov eax, 0xffffffe6
jmp 0x40a6c7
mov ecx, dword [ecx]
test ecx, ecx
jne 0x485071
mov dword [ebp - 0x54], edx
mov eax, dword [ebx + 0x94]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x44], eax
mov eax, dword [ebx + 0xa8]
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x58]
mov dword [ebx + 0xa8], eax
mov ecx, dword [ebx + 0x10]
add edi, 4
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x4c], ecx
cmp ecx, 0x1e
jg 0x4850cb
lea eax, [ebp - 0x14c]
mov dword [ebp - 0x50], eax
jmp 0x4850ea
lea eax, [ecx*4]
push eax
call dword [0x4bcddc]
add esp, 4
mov dword [ebp - 0x50], eax
test eax, eax
je 0x48ae1d
mov ecx, dword [ebp - 0x4c]
shl ecx, 2
push ecx
push dword [ebx + 0xc]
push eax
call fcn.00420590
mov eax, 0x82
add esp, 0xc
cmp word [esi], ax
sbb eax, eax
inc eax
mov dword [ebp - 0x30], eax
test eax, eax
je 0x485116
mov dword [ebx + 0x9c], 2
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [esi]
push ebx
movzx eax, byte [eax + 0x49f530]
push dword [ebp + 0xc]
lea edx, [esi + eax*2]
push dword [ebp + 8]
call fcn.0040a520
mov ecx, dword [ebp - 0x4c]
add esp, 0x14
shl ecx, 2
push ecx
push dword [ebp - 0x50]
mov dword [ebp - 0xc], eax
push dword [ebx + 0xc]
call fcn.00420590
mov eax, dword [ebp - 0x48]
mov dword [ebx + 0x94], eax
mov eax, dword [ebp - 0x58]
mov dword [ebx + 0xa8], eax
mov eax, dword [ebp - 0xc]
add esp, 0xc
cmp eax, 1
je 0x4851b3
cmp eax, 0xfffffc19
je 0x4851b3
cmp eax, 0xfffffc1c
jl 0x485188
cmp eax, 0xfffffc20
jle case.0x40a5a0.151
test eax, eax
jne 0x48adfa
lea eax, [ebp - 0x58]
mov dword [ebx + 0xa8], eax
movzx eax, word [esi + 2]
cmp word [esi + eax*2], 0x71
lea esi, [esi + eax*2]
jne 0x48add1
mov eax, dword [ebp - 0x30]
jmp 0x485108
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je 0x4851ca
push eax
call dword [0x4bc80c]
add esp, 4
mov eax, dword [ebx + 0x84]
mov dword [ebp - 8], eax
mov eax, dword [ebx + 0x80]
mov dword [ebp + 8], eax
jmp 0x40a580
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x4851e1
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x40a580
add edi, 2
mov dword [ebp - 0x38], edi
mov edx, edi
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x71
lea edx, [edx + eax*2]
je 0x485202
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
add edx, 4
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x40a580
jmp 0x40a6c7
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x48523a
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x40a580
movzx esi, word [edi + 2]
add edi, 2
mov dword [ebp - 0x10], 1
cmp esi, 0x80
je 0x485275
cmp esi, 0x85
jne 0x4853e4
movzx edx, word [edi + 4]
mov dword [ebp - 0x18], edx
lea eax, [edx + edx]
cmp eax, dword [ebx + 0x14]
jge case.0x40a5a0.126
xor ecx, ecx
mov dword [ebp - 0x34], ecx
mov ecx, edi
sub ecx, dword [ebx + 0x74]
shl eax, 2
sar ecx, 1
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebx + 0xc]
mov dword [ebp - 0x28], eax
mov edx, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 0x10]
sub eax, dword [ebp - 0x18]
mov dword [ebp - 0x38], edx
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0x94]
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 8]
sub edx, dword [ebx + 0x78]
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebp - 0x18]
mov eax, dword [ebx + 0xc]
sar edx, 1
mov dword [eax + ecx*4], edx
cmp esi, 0x82
jb 0x4852e8
mov dword [ebx + 0x9c], 2
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x49f530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.0040a520
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1a
jne 0x485341
mov eax, dword [ebx + 0x90]
mov ecx, dword [ebp - 0xc]
mov dword [ebp + 0xc], eax
mov eax, dword [ebx + 0x84]
mov dword [ebp - 8], eax
mov eax, dword [ebx + 0x74]
lea edi, [eax + ecx*2]
mov ecx, 1
mov dword [ebp - 0x34], ecx
jmp 0x4852b9
cmp ecx, 0xfffffc20
jne 0x48536e
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
cmp dword [ebx + 0x80], eax
jae 0x4847f2
cmp word [edi], 0x71
je 0x485376
cmp word [eax], 0x71
jne 0x4847f2
jmp 0x485376
test ecx, ecx
jne 0x4847f2
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0x94], eax
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x4852c2
mov eax, dword [ebp - 0x34]
test eax, eax
jne 0x4853c0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x38]
mov dword [ecx + eax], edx
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x2c]
mov dword [ecx + eax + 4], edx
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebp - 0x18]
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x1c]
mov dword [eax + ecx*4], edx
mov eax, dword [ebp - 0x34]
cmp dword [ebp - 0x10], 0
jne 0x4870b3
test eax, eax
je case.0x40a5a0.151
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x40a580
mov dword [ebp - 0x10], 0
mov eax, edi
sub eax, dword [ebx + 0x74]
mov dword [ebp - 0x30], 0
sar eax, 1
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 0x94]
mov dword [ebp - 0x28], eax
cmp esi, 0x82
jb 0x485410
mov dword [ebx + 0x9c], 2
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x49f530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.0040a520
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1a
jne 0x485465
mov eax, dword [ebx + 0x90]
mov ecx, dword [ebp - 0xc]
mov dword [ebp + 0xc], eax
mov eax, dword [ebx + 0x84]
mov dword [ebp - 8], eax
mov eax, dword [ebx + 0x74]
mov dword [ebp - 0x30], 1
lea edi, [eax + ecx*2]
jmp 0x4853fe
cmp ecx, 0xfffffc20
jne 0x485492
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
cmp dword [ebx + 0x80], eax
jae 0x4847f2
cmp word [edi], 0x71
je 0x48549a
cmp word [eax], 0x71
jne 0x4847f2
jmp 0x48549a
test ecx, ecx
jne 0x4847f2
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
jne 0x4854b6
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0x94], eax
jmp 0x4853fe
cmp dword [ebp - 0x30], 0
jne 0x4870b3
cmp dword [ebp - 0x10], 0
je case.0x40a5a0.151
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x40a580
mov edx, dword [ebp + 0x14]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
mov dword [ebp + 0x14], edx
jmp 0x40a62d
cmp eax, 0x77
jb 0x40a639
mov eax, dword [ebp - 8]
mov dword [ebx + 0x84], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x90], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0x80], eax
jmp 0x40a6c2
cmp dword [eax + 4], ecx
jne 0x40aa5b
mov eax, dword [ebp - 8]
mov dword [ebx + 0x84], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0x80], eax
mov eax, 1
jmp 0x40a6c7
mov ecx, dword [ebp - 0x10]
or eax, 0x10000
mov dword [ebx + 0x94], eax
jmp 0x40a675
mov eax, dword [ebx + 0xc]
lea ecx, [eax + ecx*4]
mov dword [ebp - 0x30], ecx
lea ecx, [eax + edx*4]
mov eax, dword [ebp - 0x30]
cmp eax, ecx
jae 0x40aa82
mov edi, dword [ebp - 0x30]
sub ecx, eax
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x38]
jmp 0x40aa82
mov eax, dword [ebp - 8]
cmp eax, ecx
je 0x40a682
movzx ecx, word [edi]
cmp ecx, 0x75
je 0x48ae91
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
push ebx
push edx
push dword [ebp + 8]
cmp ecx, 0x74
jne 0x48ac40
mov esi, dword [ebp - 8]
lea edx, [edi + 4]
mov ecx, esi
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov edi, dword [ebp - 0x18]
movzx eax, word [edi]
cmp eax, 0x7b
je 0x48ae27
mov ecx, 0x82
cmp ax, cx
jb 0x40a5eb
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
jmp 0x40a6c7
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x48], edx
je 0x485607
cmp eax, dword [ebx + 0x78]
je case.0x40a5a0.151
cmp eax, dword [ebx + 0x78]
jne case.0x40a5a0.151
add edi, 2
mov dword [ebp - 0x38], edi
jmp 0x40a580
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x48], edx
je 0x48562c
cmp eax, dword [ebx + 0x78]
je case.0x40a5a0.151
mov ecx, dword [ebx + 0x78]
cmp eax, ecx
je 0x40a876
cmp eax, dword [ebx + 0x7c]
je case.0x40a5a0.151
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x48566f
cmp eax, ecx
jbe case.0x40a5a0.151
push dword [ebp - 0x20]
lea eax, [ebx + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.004724fe
add esp, 0xc
test eax, eax
je case.0x40a5a0.151
jmp 0x40a876
mov esi, dword [ebx + 0x1c]
lea edx, [esi + esi]
lea eax, [ecx + edx]
cmp dword [ebp - 8], eax
jb case.0x40a5a0.151
mov ecx, dword [ebp - 8]
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [ebx + 0x34]
jne case.0x40a5a0.151
cmp esi, 1
je 0x40a876
mov ax, word [ecx + 2]
cmp ax, word [ebx + 0x36]
jne case.0x40a5a0.151
jmp 0x40a876
mov ecx, dword [ebx + 0x98]
mov eax, dword [ebx + 0x78]
lea eax, [eax + ecx*2]
cmp dword [ebp - 8], eax
jne case.0x40a5a0.151
add edi, 2
mov dword [ebp - 0x38], edi
jmp 0x40a580
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp + 8], eax
mov dword [ebp - 0x38], edi
jmp 0x40a580
mov ecx, dword [ebx + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x4857a5
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x48576e
push dword [ebp - 0x20]
lea eax, [ebx + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.00409126
add esp, 0xc
test eax, eax
jne 0x40a876
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x8c], 0
je case.0x40a5a0.151
add eax, 2
cmp eax, dword [ebx + 0x7c]
jb case.0x40a5a0.151
cmp dword [ebx + 0x18], 0
jne case.0x40a5a0.151
cmp dword [ebx + 0x1c], 2
jne case.0x40a5a0.151
mov eax, dword [ebp - 8]
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne case.0x40a5a0.151
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle case.0x40a5a0.151
mov eax, 0xfffffff4
jmp 0x40a6c7
mov edx, dword [ebx + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x485713
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne 0x485710
cmp edx, 1
je 0x40a876
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [ebx + 0x36]
jne 0x485710
jmp 0x40a876
cmp dword [ebx + 0x4c], edx
jne case.0x40a5a0.151
cmp dword [ebx + 0x8c], edx
jmp 0x4857bd
cmp dword [ebx + 0x8c], 0
je 0x40a876
cmp eax, dword [ebx + 0x88]
jbe 0x40a876
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
add edi, 2
mov dword [ebp - 0x38], edi
jmp 0x40a580
cmp dword [ebx + 0x4c], edx
jne case.0x40a5a0.151
cmp dword [ebx + 0x5c], edx
je case.0x40a5a0.23
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jb case.0x40a5a0.151
cmp dword [ebx + 0x8c], edx
jmp 0x4857bd
mov ecx, dword [ebx + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x4857b6
mov edx, dword [ebx + 0x18]
lea esi, [ebx + 0x1c]
test edx, edx
je 0x485838
push dword [ebp - 0x20]
push esi
push ecx
mov ecx, eax
call fcn.00409126
add esp, 0xc
test eax, eax
jne 0x48586d
jmp 0x485710
mov edx, dword [esi]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x485713
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne 0x485710
cmp edx, 1
je 0x48586d
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [ebx + 0x36]
jne 0x485710
mov ecx, dword [esi]
mov eax, dword [ebx + 0x7c]
add ecx, ecx
sub eax, ecx
cmp dword [ebp - 8], eax
mov eax, dword [ebp - 8]
jne 0x485713
jmp 0x4857b6
mov eax, dword [ebp - 8]
cmp dword [ebp - 0x20], edx
je 0x485a38
cmp eax, dword [ebx + 0x78]
je 0x485970
lea edx, [eax - 2]
mov ecx, 0xfc00
mov ax, word [edx]
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4858b7
sub edx, 2
cmp edx, dword [ebx + 0x88]
jae 0x4858c5
mov dword [ebx + 0x88], edx
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4858f0
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
cmp dword [ebx + 0x58], 0
je 0x485952
cmp ecx, 0x5f
jne 0x485903
mov eax, dword [ebp - 8]
lea esi, [ecx - 0x5e]
jmp 0x485972
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x485925
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
mov eax, dword [eax*4 + 0x4b6cc8]
cmp eax, 1
je 0x485948
cmp eax, 3
jne 0x48596d
mov eax, dword [ebp - 8]
mov esi, 1
jmp 0x485972
cmp ecx, 0x100
jae 0x48596d
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je 0x48596d
mov eax, dword [ebp - 8]
mov esi, 1
jmp 0x485972
mov eax, dword [ebp - 8]
xor esi, esi
cmp eax, dword [ebx + 0x7c]
jae 0x4859da
movzx ecx, word [eax]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4859a5
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax + 2]
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
cmp dword [ebx + 0x58], 0
je 0x485a21
cmp ecx, 0x5f
je 0x485b61
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
js 0x485b0d
jmp 0x485b12
cmp dword [ebx + 0x8c], 0
je 0x4859ff
cmp eax, dword [ebx + 0x88]
jbe 0x4859ff
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
xor ecx, ecx
mov ax, word [edi]
add edi, 2
mov dword [ebp - 0x38], edi
cmp ax, 5
jne 0x485b6b
cmp ecx, esi
jne 0x40a580
jmp case.0x40a5a0.151
cmp ecx, 0x100
jae 0x4859ff
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
jne 0x485b61
jmp 0x4859ff
cmp eax, dword [ebx + 0x78]
je 0x485ad7
cmp eax, dword [ebx + 0x88]
ja 0x485a55
add eax, 0xfffffffe
mov dword [ebx + 0x88], eax
mov eax, dword [ebp - 8]
movzx ecx, word [eax - 2]
cmp dword [ebx + 0x58], edx
je 0x485ab7
cmp ecx, 0x5f
jne 0x485a68
lea esi, [ecx - 0x5e]
jmp 0x485ad9
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x485a8a
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
mov eax, dword [eax*4 + 0x4b6cc8]
cmp eax, 1
je 0x485aad
cmp eax, 3
jne 0x485ad4
mov eax, dword [ebp - 8]
mov esi, 1
jmp 0x485ad9
mov edx, 0xff
cmp cx, dx
ja 0x485ad7
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je 0x485ad4
mov eax, dword [ebp - 8]
mov esi, 1
jmp 0x485ad9
mov eax, dword [ebp - 8]
xor esi, esi
cmp eax, dword [ebx + 0x7c]
jae 0x4859da
cmp dword [ebx + 0x58], 0
je 0x485b41
movzx ecx, word [eax]
cmp ecx, 0x5f
je 0x485b61
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x485b12
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
mov eax, dword [eax*4 + 0x4b6cc8]
cmp eax, 1
je 0x485b61
cmp eax, 3
jne 0x4859ff
lea ecx, [eax - 2]
jmp 0x485a01
movzx eax, word [eax]
mov ecx, 0xff
cmp ax, cx
ja 0x4859ff
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je 0x4859ff
mov ecx, 1
jmp 0x485a01
cmp ecx, esi
je 0x40a580
jmp case.0x40a5a0.151
mov edx, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x7c]
test edx, edx
je 0x485ba7
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0x20]
cmp eax, ecx
jae 0x485bdf
push esi
lea eax, [ebx + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.00409126
add esp, 0xc
test eax, eax
jne case.0x40a5a0.151
jmp 0x485bdc
mov edx, dword [ebx + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x485bd9
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne 0x485bd9
cmp edx, 1
je case.0x40a5a0.151
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [ebx + 0x36]
je case.0x40a5a0.151
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x8c], 0
je 0x485c1f
add eax, 2
cmp eax, dword [ebx + 0x7c]
mov eax, dword [ebp - 8]
jb 0x485c1f
cmp dword [ebx + 0x18], 0
jne 0x485c1f
cmp dword [ebx + 0x1c], 2
jne 0x485c1f
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne 0x485c1c
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
mov eax, dword [ebp - 8]
mov ecx, dword [ebx + 0x7c]
cmp eax, ecx
jae 0x40ade4
add eax, 2
mov dword [ebp - 8], eax
test esi, esi
je 0x40a876
cmp eax, ecx
jae 0x40a876
mov ax, word [eax]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x40a876
add dword [ebp - 8], 2
jmp 0x40a876
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40adf6
add eax, 2
mov dword [ebp - 8], eax
jmp 0x40a876
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40adf6
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x485cc1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x485cc1
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x100
jae 0x40a876
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
jne case.0x40a5a0.151
jmp 0x40a876
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40adf6
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x485d27
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x485d27
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0xff
ja case.0x40a5a0.151
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
je case.0x40a5a0.151
jmp 0x40a876
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40adf6
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x485d8d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x485d8d
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x100
jae 0x40a876
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
jne case.0x40a5a0.151
jmp 0x40a876
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40adf6
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x485df3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x485df3
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0xff
ja case.0x40a5a0.151
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
je case.0x40a5a0.151
jmp 0x40a876
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40adf6
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x485e59
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x485e59
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x100
jae 0x40a876
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
jne case.0x40a5a0.151
jmp 0x40a876
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40adf6
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x485ebf
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x485ebf
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0xff
ja case.0x40a5a0.151
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je case.0x40a5a0.151
jmp 0x40a876
movzx eax, word [eax]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov eax, dword [ebp - 8]
jmp 0x40aa00
cmp ecx, 0xa
je 0x40a876
jbe case.0x40a5a0.151
cmp ecx, 0xc
ja case.0x40a5a0.151
jmp 0x485f65
cmp dword [ebx + 0x8c], 0
je 0x40a876
cmp eax, dword [ebx + 0x88]
jbe 0x40a876
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
jmp 0x40a876
cmp ecx, 0x85
je 0x485f65
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40a5a0.151
cmp dword [ebx + 0x6c], 0
jne case.0x40a5a0.151
jmp 0x40a876
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40adf6
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x485fbc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x485fbc
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x180e
ja 0x486000
je case.0x40a5a0.151
cmp ecx, 0xa0
ja 0x485fef
je case.0x40a5a0.151
cmp ecx, 9
je case.0x40a5a0.151
cmp ecx, 0x20
je case.0x40a5a0.151
jmp 0x40a876
cmp ecx, 0x1680
je case.0x40a5a0.151
jmp 0x40a876
cmp ecx, 0x205f
ja 0x486037
je case.0x40a5a0.151
cmp ecx, 0x2000
jb 0x40a876
cmp ecx, 0x200a
jbe case.0x40a5a0.151
cmp ecx, 0x202f
je case.0x40a5a0.151
jmp 0x40a876
cmp ecx, 0x3000
je case.0x40a5a0.151
jmp 0x40a876
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40adf6
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x486090
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x486090
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x180e
ja 0x4860d4
je 0x40a876
cmp ecx, 0xa0
ja 0x4860c3
je 0x40a876
cmp ecx, 9
je 0x40a876
cmp ecx, 0x20
jne case.0x40a5a0.151
jmp 0x40a876
cmp ecx, 0x1680
jne case.0x40a5a0.151
jmp 0x40a876
cmp ecx, 0x205f
ja 0x48610b
je 0x40a876
cmp ecx, 0x2000
jb case.0x40a5a0.151
cmp ecx, 0x200a
jbe 0x40a876
cmp ecx, 0x202f
jne case.0x40a5a0.151
jmp 0x40a876
cmp ecx, 0x3000
jne case.0x40a5a0.151
jmp 0x40a876
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40adf6
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x486164
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x486164
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x85
ja 0x486189
je case.0x40a5a0.151
cmp ecx, 0xa
jb 0x40a876
cmp ecx, 0xd
jbe case.0x40a5a0.151
jmp 0x40a876
cmp ecx, 0x2028
jb 0x40a876
cmp ecx, 0x2029
jbe case.0x40a5a0.151
jmp 0x40a876
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40adf6
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x4861ee
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4861ee
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x85
ja 0x48620d
je 0x40a876
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x40a5a0.151
jmp 0x40a876
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40a5a0.151
jmp 0x40a876
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov dword [ebp - 0x30], ecx
jmp 0x40aae6
cmp ecx, 0xa
ja case.default.0x486252
jmp dword [ecx*4 + 0x48ce88]
cmp esi, 0xf
je case.0x40a5a0.151
jmp 0x40ab5b
mov al, byte [eax*8 + 0x4ac0d1]
cmp al, 9
je 0x48627e
cmp al, 5
je 0x48627e
cmp al, 8
je 0x48627e
xor ecx, ecx
jmp 0x486287
mov ecx, 1
jmp 0x486287
xor ecx, ecx
xor eax, eax
cmp esi, 0xf
sete al
cmp ecx, eax
je case.0x40a5a0.151
jmp 0x40ab5b
movzx ecx, byte [eax*8 + 0x4ac0d1]
movzx eax, word [edi + 4]
xor edx, edx
cmp eax, dword [ecx*4 + 0x4b6cc8]
setne dl
xor eax, eax
cmp esi, 0x10
sete al
cmp edx, eax
je case.0x40a5a0.151
jmp 0x40ab5b
movzx eax, byte [eax*8 + 0x4ac0d1]
jmp 0x4862db
movzx eax, byte [eax*8 + 0x4ac0d0]
xor ecx, ecx
cmp word [edi + 4], ax
setne cl
xor eax, eax
cmp esi, 0x10
sete al
cmp ecx, eax
je case.0x40a5a0.151
jmp 0x40ab5b
movzx eax, byte [eax*8 + 0x4ac0d1]
mov eax, dword [eax*4 + 0x4b6cc8]
cmp eax, 1
je 0x48627e
cmp eax, 3
je 0x48627e
xor ecx, ecx
jmp 0x486287
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cc8], 6
je 0x48627e
cmp edx, 9
je 0x48627e
cmp edx, 0xa
jmp 0x486348
cmp edx, 0xb
je 0x48627e
cmp edx, 0xc
je 0x48627e
cmp edx, 0xd
jmp 0x48635f
cmp edx, 0x5f
je 0x48627e
jmp 0x486285
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cc8], 6
je 0x48627e
cmp edx, 9
je 0x48627e
cmp edx, 0xa
je 0x48627e
jmp 0x486345
movzx eax, byte [eax*8 + 0x4ac0d1]
mov eax, dword [eax*4 + 0x4b6cc8]
cmp eax, 1
je 0x48627e
cmp eax, 3
je 0x48627e
jmp 0x48635c
cmp edx, 0x24
je 0x48627e
cmp edx, 0x40
je 0x48627e
cmp edx, 0x60
je 0x48627e
cmp edx, 0xa0
jb 0x4863e6
cmp edx, 0xd7ff
jbe 0x48627e
cmp edx, 0xe000
jae 0x48627e
jmp 0x486285
cmp esi, 0x10
je case.0x40a5a0.151
jmp 0x40ab5b
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
jmp 0x40a7ae
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov esi, 2
jmp 0x40a80f
cmp eax, esi
jb 0x40a876
jmp 0x4857c3
movzx ecx, word [edi + 2]
xor edx, edx
cmp esi, 0x6e
sete dl
add ecx, ecx
add edi, 4
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x28], edx
cmp ecx, dword [ebp + 0xc]
jge 0x48648c
mov eax, dword [ebx + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x48648c
mov esi, dword [eax + ecx*4 + 4]
sub esi, dword [eax + ecx*4]
jmp 0x486496
mov esi, dword [ebx + 0x54]
neg esi
sbb esi, esi
neg esi
dec esi
movzx eax, word [edi]
add eax, 0xffffff9e
mov dword [ebp - 0x2c], esi
cmp eax, 7
ja case.default.0x4864af
movzx eax, byte [eax + 0x48cebc]
jmp dword [eax*4 + 0x48ceb4]
movzx eax, word [edi]
movsx edx, byte [eax + 0x49f4c6]
add eax, 0xffffff9e
movzx ecx, al
and ecx, 1
mov dword [ebp - 0xc], ecx
movsx ecx, byte [eax + 0x49f520]
add edi, 2
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x18], edx
test edx, edx
jne 0x486514
mov edx, SysAllocStringLen
jmp 0x486511
movzx edx, word [edi + 4]
movzx ecx, word [edi + 2]
xor eax, eax
cmp word [edi], 0x69
mov dword [ebp - 0x10], ecx
sete al
test edx, edx
mov dword [ebp - 0xc], eax
mov eax, SysAllocStringLen
cmove edx, eax
add edi, 6
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x18], edx
test esi, esi
je 0x40a580
jns 0x486526
test ecx, ecx
je 0x40a580
mov eax, dword [ebp - 8]
mov dword [ebp - 0x30], 1
cmp ecx, 1
jl 0x48656b
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x34]
push ebx
push esi
mov edx, eax
call fcn.00472263
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x48afe3
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x30]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x10]
inc edx
mov dword [ebp - 8], eax
mov dword [ebp - 0x30], edx
cmp edx, ecx
jle 0x486535
mov edx, dword [ebp - 0x18]
cmp ecx, edx
je 0x40a580
cmp dword [ebp - 0xc], 0
je 0x48af34
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x10], eax
jge case.0x40a5a0.151
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x34]
push ebx
push dword [ebp - 0x2c]
mov edx, esi
call fcn.00472263
add esp, 0xc
test eax, eax
js 0x48af0e
inc dword [ebp - 0x10]
lea esi, [esi + eax*2]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x4865a3
jmp 0x40a6c7
push edx
mov edx, dword [ebp - 8]
push ebx
push esi
call fcn.00472263
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x48afe3
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
jmp 0x40a580
movzx ecx, word [edi + 4]
movzx eax, word [edi + 2]
xor edx, edx
cmp word [edi], 0x69
mov dword [ebp - 0xc], SysAllocStringLen
sete dl
test ecx, ecx
cmove ecx, dword [ebp - 0xc]
add edi, 6
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x38], edi
jmp 0x40a6f8
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov dword [ebp - 0x30], ecx
jmp 0x40a749
cmp esi, 0x6a
je case.0x40a5a0.151
jmp 0x40a881
cmp eax, 1
mov eax, dword [ebp - 8]
mov dword [ebp - 0x2c], 1
jl 0x40a89a
mov ecx, dword [ebp - 0x34]
cmp eax, dword [ebx + 0x7c]
jae 0x40ade4
movzx ebx, word [eax]
add eax, 2
mov dword [ebp - 0x10], ebx
cmp ebx, 0xff
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 8], eax
jbe 0x4866be
cmp esi, 0x6a
je case.0x40a5a0.151
jmp 0x4866e7
mov ecx, dword [ebp - 0x10]
shr dword [ebp - 0x10], 3
mov ebx, dword [ebp - 0x10]
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x1c]
test byte [ebx + ecx], al
mov ebx, dword [ebp + 0x10]
je case.0x40a5a0.151
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x34]
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], ecx
jle 0x486693
jmp 0x40a897
lea eax, [edi + 4]
mov dword [ebp - 0x28], eax
movzx eax, word [edi + 2]
movzx edx, word [edi + eax*2]
lea edi, [edi + eax*2]
mov ecx, edx
mov dword [ebp - 0x38], edi
lea eax, [ecx - 0x62]
cmp eax, 7
ja case.default.0x486719
movzx eax, byte [eax + 0x48cecc]
jmp dword [eax*4 + 0x48cec4]
lea eax, [ecx - 0x62]
movzx ecx, al
movsx edx, byte [eax + 0x49f520]
movsx eax, byte [eax + 0x49f528]
add edi, 2
and ecx, 1
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x10], eax
test eax, eax
jne 0x486786
mov eax, SysAllocStringLen
jmp 0x486783
movzx eax, word [edi + 4]
xor ecx, ecx
cmp edx, 0x69
movzx edx, word [edi + 2]
sete cl
test eax, eax
mov esi, SysAllocStringLen
cmove eax, esi
add edi, 6
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x2c], ecx
jmp 0x486780
mov ecx, dword [ebp - 0x2c]
mov eax, 1
mov edx, eax
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x30], 1
cmp edx, 1
jl 0x486806
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40ade4
movzx esi, word [eax]
mov ecx, dword [ebp - 0x20]
add eax, 2
mov dword [ebp - 8], eax
test ecx, ecx
je 0x4867dc
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4867dc
mov eax, dword [ebp - 8]
and esi, 0x3ff
movzx eax, word [eax]
shl esi, 0xa
and eax, 0x3ff
or esi, eax
add esi, 0x10000
add dword [ebp - 8], 2
mov edx, dword [ebp - 0x28]
push ecx
mov ecx, esi
call fcn.0047266a
add esp, 4
test eax, eax
je case.0x40a5a0.151
mov esi, dword [ebp - 0x30]
mov edx, dword [ebp - 0x18]
inc esi
mov dword [ebp - 0x30], esi
cmp esi, edx
jle 0x486792
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x10]
cmp edx, eax
je 0x40a580
mov esi, dword [ebp - 8]
test ecx, ecx
je 0x48b361
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x18], eax
jge case.0x40a5a0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx edx, word [esi]
mov ecx, dword [ebp - 0x20]
add esi, 2
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x48b305
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48b305
movzx eax, word [esi]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or eax, edx
add eax, 0x10000
add esi, 2
jmp 0x48b308
mov eax, dword [ebx + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 2
jl 0x48b49c
mov ax, word [ecx]
add ecx, 2
mov dword [ebp - 8], ecx
cmp word [edi + 2], ax
jne case.0x40a5a0.151
add edi, 4
jmp 0x40a879
movzx eax, word [edi + 2]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
add esi, 0x10000
mov edx, 2
jmp 0x40a98f
add eax, 2
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x30], ecx
cmp eax, 0xd800
jne 0x486924
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov dword [ebp - 0x30], ecx
lea edi, [edi + edx*2]
mov dword [ebp - 0x38], edi
cmp esi, ecx
je 0x40a580
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4ad470]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x486955
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
mov eax, dword [eax*8 + 0x4ac0d4]
add eax, esi
cmp dword [ebp - 0x30], eax
je 0x40a580
jmp case.0x40a5a0.151
movzx ecx, word [edi + 2]
mov edx, 0xff
cmp cx, dx
ja 0x486990
mov eax, dword [ebx + 0x3c]
movzx edx, byte [eax + ecx]
mov eax, dword [ebp - 8]
jmp 0x486992
mov edx, ecx
movzx ecx, word [eax]
mov esi, 0xff
cmp cx, si
ja 0x4869a9
mov eax, dword [ebx + 0x3c]
movzx ecx, byte [eax + ecx]
mov eax, dword [ebp - 8]
cmp edx, ecx
jne case.0x40a5a0.151
add eax, 2
mov dword [ebp - 8], eax
add edi, 4
jmp 0x40a879
movzx eax, word [edi + 2]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x2c]
add edi, 4
jmp 0x486a99
mov edx, 1
mov dword [ebp - 0x24], edx
movzx eax, word [edi + 2]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x34], eax
cmp ecx, 0x28
je 0x4869fe
cmp ecx, 0x35
je 0x4869fe
xor eax, eax
add edi, 4
jmp 0x486a96
mov eax, 1
add edi, 4
jmp 0x486a96
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x34], SysAllocStringLen
add edi, 2
jmp 0x486a99
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x34], SysAllocStringLen
add edi, 2
jmp 0x486a99
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x34], edx
add edi, 2
jmp 0x486a99
cmp esi, 0x2e
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x2e
mov ecx, esi
sub ecx, eax
movzx eax, cl
movsx ebx, byte [ecx + 0x49f520]
movsx ecx, byte [ecx + 0x49f528]
mov dword [ebp - 0x1c], ebx
add edi, 2
and eax, 1
mov ebx, SysAllocStringLen
test ecx, ecx
cmove ecx, ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x486d09
movzx eax, word [edi]
mov dword [ebp - 0x18], eax
and eax, 0xfc00
mov dword [ebp - 0x10], 1
mov dword [ebp - 0x28], edi
cmp eax, 0xd800
jne 0x486aec
mov ebx, dword [ebp - 0x18]
movzx eax, word [edi + 2]
and ebx, 0x3ff
and eax, 0x3ff
shl ebx, 0xa
or eax, ebx
mov ebx, dword [ebp + 0x10]
add eax, 0x10000
mov dword [ebp - 0x18], eax
mov eax, 2
mov dword [ebp - 0x10], eax
jmp 0x486af1
mov eax, 1
lea edx, [eax + eax]
add edi, edx
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x38], edi
cmp eax, 1
jle 0x486d1a
cmp esi, 0x2e
jb 0x486b5d
mov esi, dword [ebp - 0x18]
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4ad470]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x486b33
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
mov ecx, dword [eax*8 + 0x4ac0d4]
add ecx, esi
cmp ecx, esi
je 0x486b5a
lea edx, [ebp - 0x6c]
call fcn.004725b7
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x18], eax
jmp 0x486b64
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x18], 0
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0xc], 1
cmp esi, 1
jl 0x486bea
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
cmp ecx, eax
ja 0x486b9e
mov eax, dword [ebp - 0x10]
add eax, eax
push eax
push dword [ebp - 0x28]
push ecx
call fcn.00420c73
add esp, 0xc
test eax, eax
jne 0x486b9b
mov eax, dword [ebp - 0x14]
jmp 0x486bd9
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
test edx, edx
jle 0x48b4b6
lea eax, [edx + edx]
mov dword [ebp - 0x30], eax
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebp - 0x30]
cmp ecx, eax
ja 0x48b4b6
lea eax, [edx + edx]
push eax
lea eax, [ebp - 0x6c]
push eax
push ecx
call fcn.00420c73
add esp, 0xc
test eax, eax
jne 0x48b4b3
mov eax, dword [ebp - 0x30]
add dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, esi
jle 0x486b73
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x34]
cmp esi, ecx
je 0x40a580
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x48b4d1
mov eax, dword [ebp - 8]
mov dword [ebp - 0x30], eax
cmp esi, ecx
jge 0x486ca6
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
cmp ecx, eax
ja 0x486c39
mov eax, dword [ebp - 0x10]
add eax, eax
push eax
push dword [ebp - 0x28]
push ecx
call fcn.00420c73
add esp, 0xc
test eax, eax
jne 0x486c36
mov eax, dword [ebp - 0x14]
jmp 0x486c68
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
test edx, edx
jle 0x486c73
lea eax, [edx + edx]
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebp - 0xc]
cmp ecx, eax
ja 0x486c73
lea eax, [edx + edx]
push eax
lea eax, [ebp - 0x6c]
push eax
push ecx
call fcn.00420c73
add esp, 0xc
test eax, eax
jne 0x486c73
mov eax, dword [ebp - 0xc]
add dword [ebp - 8], eax
inc esi
cmp esi, dword [ebp - 0x34]
jl 0x486c0e
jmp 0x486ca0
cmp dword [ebx + 0x8c], 0
mov eax, dword [ebp - 8]
je 0x486ca3
cmp eax, dword [ebx + 0x7c]
jb 0x486ca0
cmp eax, dword [ebx + 0x88]
jbe 0x486ca0
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x40a580
cmp eax, dword [ebp - 0x30]
je 0x40a5ee
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov ax, word [esi - 2]
sub esi, 2
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
mov dword [ebp - 8], esi
cmp ax, cx
jne 0x486cff
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x30]
jne 0x486cba
jmp 0x40a5ee
movzx ebx, word [edi]
add edi, 2
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x38], edi
jmp 0x486d1d
mov eax, dword [ebp - 0x2c]
cmp esi, 0x2e
jb 0x486e82
mov esi, dword [ebp - 0x18]
test ecx, ecx
je 0x486d73
cmp esi, 0x7f
jbe 0x486d73
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4ad470]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x486d55
dec eax
or eax, 0xffffff80
inc eax
mov edx, dword [ebp - 0x24]
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
mov eax, dword [eax*8 + 0x4ac0d4]
add eax, esi
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x2c]
jmp 0x486d88
cmp esi, 0xff
ja 0x486d85
mov eax, dword [ebx + 0x40]
movzx esi, byte [eax + esi]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x14], esi
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 8]
mov dword [ebp - 0x10], 1
cmp ecx, 1
jl 0x486dcb
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx edx, word [esi]
cmp dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x24]
je 0x486dbd
movzx ebx, word [esi]
cmp dword [ebp - 0x14], ebx
mov ebx, dword [ebp + 0x10]
jne case.0x40a5a0.151
inc dword [ebp - 0x10]
add esi, 2
mov dword [ebp - 8], esi
cmp dword [ebp - 0x10], ecx
jle 0x486d9a
cmp ecx, dword [ebp - 0x34]
je 0x40a580
test eax, eax
jne 0x48b599
mov eax, dword [ebp - 8]
mov esi, eax
mov dword [ebp - 0x10], esi
cmp ecx, dword [ebp - 0x34]
jge 0x486e3c
mov esi, dword [ebp - 0x18]
cmp eax, dword [ebx + 0x7c]
jae 0x486e14
movzx edx, word [eax]
cmp esi, edx
mov edx, dword [ebp - 0x24]
je 0x486e06
movzx edx, word [eax]
cmp dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x24]
jne 0x486e39
add eax, 2
inc ecx
mov dword [ebp - 8], eax
cmp ecx, dword [ebp - 0x34]
jl 0x486dec
jmp 0x486e39
cmp dword [ebx + 0x8c], 0
je 0x486e39
cmp eax, dword [ebx + 0x88]
jbe 0x486e39
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
mov esi, dword [ebp - 0x10]
test edx, edx
jne 0x40a580
cmp eax, esi
je 0x40a5ee
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
sub esi, 2
add esp, 0x14
mov dword [ebp - 8], esi
test eax, eax
jne 0x40a6c7
cmp esi, dword [ebp - 0x10]
jne 0x486e4f
jmp 0x40a5ee
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0xc], 1
cmp ecx, 1
jge 0x486e96
mov esi, dword [ebp - 8]
jmp 0x486ec5
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40ade4
movzx eax, word [eax]
mov esi, dword [ebp - 8]
add esi, 2
mov dword [ebp - 8], esi
cmp dword [ebp - 0x18], eax
jne case.0x40a5a0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, ecx
jle 0x486e96
mov eax, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0x34]
je 0x40a580
test eax, eax
jne 0x48b60d
mov eax, dword [ebp - 8]
mov esi, eax
mov dword [ebp - 0x10], esi
cmp ecx, dword [ebp - 0x34]
jge 0x486f05
mov esi, dword [ebp - 0x18]
cmp eax, dword [ebx + 0x7c]
jae 0x486f4b
movzx eax, word [eax]
cmp esi, eax
jne 0x486eff
add dword [ebp - 8], 2
mov eax, dword [ebp - 8]
inc ecx
cmp ecx, dword [ebp - 0x34]
jl 0x486ee6
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
test edx, edx
jne 0x40a580
cmp eax, esi
je 0x40a5ee
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
sub esi, 2
add esp, 0x14
mov dword [ebp - 8], esi
test eax, eax
jne 0x40a6c7
cmp esi, dword [ebp - 0x10]
jne 0x486f18
jmp 0x40a5ee
cmp dword [ebx + 0x8c], 0
je 0x486f02
cmp eax, dword [ebx + 0x88]
jbe 0x486f02
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
jmp 0x486f02
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40adf6
cmp dword [ebp - 0x20], edx
je 0x487082
movzx edx, word [edi + 2]
mov eax, edx
add edi, 4
and eax, 0xfc00
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x38], edi
cmp eax, 0xd800
jne 0x486fc4
movzx eax, word [edi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add edi, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x38], edi
mov eax, dword [ebp - 8]
add eax, 2
movzx ecx, word [eax - 2]
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x30], ecx
cmp eax, 0xd800
jne 0x487005
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov dword [ebp - 0x30], ecx
cmp esi, 0x1f
jne 0x487017
cmp edx, ecx
jne 0x40a580
jmp case.0x40a5a0.151
cmp edx, 0x7f
jbe 0x48705a
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4ad470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x487042
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
mov ecx, dword [ebp - 0x30]
mov eax, dword [eax*8 + 0x4ac0d4]
add eax, edx
jmp 0x48706d
cmp edx, 0xff
ja 0x48706b
mov eax, dword [ebx + 0x40]
movzx eax, byte [eax + edx]
jmp 0x48706d
mov eax, edx
cmp edx, ecx
je case.0x40a5a0.151
cmp eax, ecx
jne 0x40a580
jmp case.0x40a5a0.151
movzx edx, word [eax]
movzx ecx, word [edi + 2]
add eax, 2
mov dword [ebp - 8], eax
cmp ecx, edx
je case.0x40a5a0.151
cmp esi, 0x20
jne 0x4870b3
cmp ecx, 0xff
ja 0x4870ab
mov eax, dword [ebx + 0x40]
movzx ecx, byte [eax + ecx]
cmp ecx, edx
je case.0x40a5a0.151
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x40a580
movzx eax, word [edi + 2]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x2c]
add edi, 4
jmp 0x4871ad
movzx eax, word [edi + 2]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x34], eax
cmp ecx, 0x42
je 0x4870f1
cmp ecx, 0x4f
je 0x4870f1
xor eax, eax
add edi, 4
jmp 0x4871aa
mov eax, 1
add edi, 4
jmp 0x4871aa
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x34], SysAllocStringLen
add edi, 2
jmp 0x4871ad
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x34], SysAllocStringLen
add edi, 2
jmp 0x4871ad
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x34], edx
add edi, 2
jmp 0x4871ad
movzx eax, word [edi + 2]
mov edx, 1
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], 0
add edi, 4
jmp 0x4871ad
cmp esi, 0x48
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x48
mov ecx, esi
sub ecx, eax
movzx eax, cl
movsx ebx, byte [ecx + 0x49f520]
movsx ecx, byte [ecx + 0x49f528]
mov dword [ebp - 0x1c], ebx
add edi, 2
and eax, 1
mov ebx, SysAllocStringLen
test ecx, ecx
cmove ecx, ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x2c], eax
movzx ecx, word [edi]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x20]
add edi, 2
mov dword [ebp - 0x38], edi
test ecx, ecx
je 0x4871f6
mov eax, dword [ebp - 0x14]
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4871f3
movzx eax, word [edi]
and dword [ebp - 0x14], 0x3ff
shl dword [ebp - 0x14], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x14]
add eax, 0x10000
add edi, 2
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x38], edi
mov eax, dword [ebp - 0x2c]
cmp esi, 0x48
jb 0x487505
mov esi, dword [ebp - 0x14]
test ecx, ecx
je 0x48724c
cmp esi, 0x7f
jbe 0x48724c
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4ad470]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x48722e
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax*8 + 0x4ac0d4]
add eax, esi
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x2c]
jmp 0x487261
cmp esi, 0xff
ja 0x48725e
mov eax, dword [ebx + 0x40]
movzx esi, byte [eax + esi]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], 1
test ecx, ecx
je 0x487365
mov esi, dword [ebp - 0x1c]
cmp esi, 1
jl 0x4872e5
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40ade4
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, edx
and eax, 0xfc00
mov dword [ebp - 0x18], edx
cmp eax, 0xd800
jne 0x4872c2
mov eax, dword [ebp - 8]
and dword [ebp - 0x18], 0x3ff
movzx eax, word [eax]
shl dword [ebp - 0x18], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x18]
add eax, 0x10000
add dword [ebp - 8], 2
jmp 0x4872c5
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x14], eax
je case.0x40a5a0.151
cmp dword [ebp - 0x10], eax
je case.0x40a5a0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, esi
jle 0x487278
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 8]
mov edx, dword [ebp - 0x34]
cmp dword [ebp - 0x1c], edx
mov edx, dword [ebp - 0x24]
je 0x40a580
test eax, eax
jne 0x48b67c
mov eax, dword [ebp - 8]
mov esi, eax
mov dword [ebp - 0x18], esi
test ecx, ecx
je 0x487464
mov esi, dword [ebp - 0x1c]
cmp esi, dword [ebp - 0x34]
jge 0x4873d2
mov dword [ebp - 0xc], 1
cmp eax, dword [ebx + 0x7c]
jae 0x487435
movzx eax, word [eax]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x2c], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4873ad
movzx eax, word [ecx + 2]
and dword [ebp - 0x2c], 0x3ff
shl dword [ebp - 0x2c], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x2c]
mov dword [ebp - 0xc], 2
add eax, 0x10000
jmp 0x4873b0
cmp dword [ebp - 0x1c], 1
jl 0x4872e5
mov esi, dword [ebp - 8]
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx ecx, word [esi]
cmp dword [ebp - 0x14], ecx
je case.0x40a5a0.151
movzx edx, word [esi]
cmp dword [ebp - 0x10], edx
je case.0x40a5a0.151
mov ecx, dword [ebp - 0xc]
inc ecx
add esi, 2
cmp ecx, dword [ebp - 0x1c]
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 8], esi
jle 0x487372
jmp 0x4872e8
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x14], eax
je 0x4873cf
cmp dword [ebp - 0x10], eax
je 0x4873cf
mov eax, dword [ebp - 0xc]
inc esi
lea ecx, [ecx + eax*2]
mov dword [ebp - 8], ecx
mov eax, ecx
cmp esi, dword [ebp - 0x34]
jl 0x48731b
mov eax, dword [ebp - 8]
test edx, edx
jne 0x40a580
cmp eax, dword [ebp - 0x18]
je 0x40a5ee
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov ax, word [esi - 2]
sub esi, 2
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
mov dword [ebp - 8], esi
cmp ax, cx
jne 0x48742b
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x18]
jne 0x4873e6
jmp 0x40a5ee
cmp dword [ebx + 0x8c], 0
je 0x4873d2
cmp eax, dword [ebx + 0x88]
jbe 0x4873d2
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x4873d2
mov eax, 0xfffffff4
jmp 0x40a6c7
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x34]
jge 0x4874bf
mov esi, dword [ebp - 0x14]
cmp eax, dword [ebx + 0x7c]
jae 0x487497
movzx ebx, word [eax]
cmp esi, ebx
mov ebx, dword [ebp + 0x10]
je 0x4874bc
movzx edx, word [eax]
cmp dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x24]
je 0x4874bc
add eax, 2
inc ecx
mov dword [ebp - 8], eax
cmp ecx, dword [ebp - 0x34]
jl 0x48746f
jmp 0x4874bc
cmp dword [ebx + 0x8c], 0
je 0x4874bc
cmp eax, dword [ebx + 0x88]
jbe 0x4874bc
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
mov esi, dword [ebp - 0x18]
test edx, edx
jne 0x40a580
cmp eax, esi
je 0x40a5ee
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x18]
jne 0x4874d2
jmp 0x40a5ee
mov dword [ebp - 0xc], 1
test ecx, ecx
je 0x487603
mov esi, dword [ebp - 0x1c]
cmp esi, 1
jl 0x487583
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40ade4
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x20]
cmp eax, 0xd800
jne 0x487569
mov eax, dword [ebp - 8]
and dword [ebp - 0x10], 0x3ff
movzx eax, word [eax]
shl dword [ebp - 0x10], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x10]
add eax, 0x10000
add dword [ebp - 8], 2
jmp 0x48756c
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x14], eax
je case.0x40a5a0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, esi
jle 0x48751c
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 8]
mov edx, dword [ebp - 0x34]
cmp dword [ebp - 0x1c], edx
mov edx, dword [ebp - 0x24]
je 0x40a580
test eax, eax
jne 0x48b78b
mov eax, dword [ebp - 8]
mov esi, eax
mov dword [ebp - 0x18], esi
test ecx, ecx
je 0x4876f4
mov esi, dword [ebp - 0x1c]
cmp esi, dword [ebp - 0x34]
jge 0x487662
mov dword [ebp - 0xc], 1
cmp eax, dword [ebx + 0x7c]
jae 0x4876c5
movzx eax, word [eax]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x10], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487642
movzx eax, word [ecx + 2]
and dword [ebp - 0x10], 0x3ff
shl dword [ebp - 0x10], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], 2
add eax, 0x10000
jmp 0x487645
cmp dword [ebp - 0x1c], 1
jl 0x487583
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40ade4
movzx eax, word [eax]
mov esi, dword [ebp - 8]
add esi, 2
mov dword [ebp - 8], esi
cmp dword [ebp - 0x14], eax
je case.0x40a5a0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x1c]
jle 0x48760d
mov eax, dword [ebp - 0x2c]
jmp 0x487586
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x14], eax
je 0x48765f
mov eax, dword [ebp - 0xc]
inc esi
lea ecx, [ecx + eax*2]
mov dword [ebp - 8], ecx
mov eax, ecx
cmp esi, dword [ebp - 0x34]
jl 0x4875b9
mov eax, dword [ebp - 8]
test edx, edx
jne 0x40a580
cmp eax, dword [ebp - 0x18]
je 0x40a5ee
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov ax, word [esi - 2]
sub esi, 2
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
mov dword [ebp - 8], esi
cmp ax, cx
jne 0x4876bb
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x18]
jne 0x487676
jmp 0x40a5ee
cmp dword [ebx + 0x8c], 0
je 0x487662
cmp eax, dword [ebx + 0x88]
jbe 0x487662
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x487662
mov eax, 0xfffffff4
jmp 0x40a6c7
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x34]
jge 0x48771e
mov esi, dword [ebp - 0x14]
cmp eax, dword [ebx + 0x7c]
jae 0x487764
movzx eax, word [eax]
cmp esi, eax
je 0x487718
add dword [ebp - 8], 2
mov eax, dword [ebp - 8]
inc ecx
cmp ecx, dword [ebp - 0x34]
jl 0x4876ff
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0x18]
test edx, edx
jne 0x40a580
cmp eax, esi
je 0x40a5ee
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x18]
jne 0x487731
jmp 0x40a5ee
cmp dword [ebx + 0x8c], 0
je 0x48771b
cmp eax, dword [ebx + 0x88]
jbe 0x48771b
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
jmp 0x48771b
movzx ecx, word [edi + 2]
mov esi, ecx
mov eax, 1
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x2c], eax
add edi, 4
jmp 0x40acb7
movzx eax, word [edi + 2]
xor esi, esi
mov dword [ebp - 0x1c], eax
xor eax, eax
cmp ecx, 0x5c
sete al
mov dword [ebp - 0x14], esi
add edi, 4
mov dword [ebp - 0x2c], eax
jmp 0x40acb7
mov eax, dword [ebp - 0x2c]
xor esi, esi
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x14], esi
add edi, 2
jmp 0x40acb0
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov esi, edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x14], esi
add edi, 2
jmp 0x40acb0
mov eax, dword [ebp - 0x2c]
mov edx, 1
xor esi, esi
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1c], edx
add edi, 2
jmp 0x40acb7
movzx ecx, word [edi + 2]
mov eax, dword [ebp - 0x2c]
xor esi, esi
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1c], ecx
add edi, 4
jmp 0x40acb7
mov dword [ebp - 0x3c], 1
jmp 0x487840
mov dword [ebp - 0x3c], 0
movzx ebx, word [edi + 2]
movzx ecx, word [edi]
add edi, 4
mov dword [ebp - 0x40], ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x38], edi
jmp 0x40acd8
test ecx, ecx
js 0x4880c7
cmp ecx, 0xa
ja case.default.0x486252
jmp dword [ecx*4 + 0x48ced4]
cmp dword [ebp - 0x3c], 0
jne case.0x40a5a0.151
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40ace9
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x10], edx
mov dword [ebp - 8], esi
test ecx, ecx
je 0x4878bf
and dword [ebp - 0x10], 0xfc00
cmp dword [ebp - 0x10], 0xd800
jne 0x4878bf
add esi, 2
mov dword [ebp - 8], esi
mov ebx, dword [ebp - 0xc]
inc ebx
cmp ebx, dword [ebp - 0x14]
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
jle 0x487890
jmp 0x40ace9
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x28], 1
cmp esi, 1
jl 0x40ace6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40ade4
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
test ecx, ecx
je 0x487933
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487933
mov eax, dword [ebp - 8]
and edx, 0x3ff
movzx eax, word [eax]
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add dword [ebp - 8], 2
mov dword [ebp - 0xc], edx
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and edx, 0x8000007f
jns 0x487958
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp eax, 9
je 0x48797d
cmp eax, 5
je 0x48797d
cmp eax, 8
je 0x48797d
xor eax, eax
jmp 0x487982
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a5a0.151
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, esi
jle 0x4878e6
mov eax, dword [ebp - 0x2c]
jmp 0x40ace6
mov dword [ebp - 0xc], 1
cmp esi, 1
jl 0x40ace3
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40ade4
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 8], eax
je 0x4879fb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4879fb
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x487a1d
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x40]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cc8], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a5a0.151
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, esi
jle 0x4879b2
mov eax, dword [ebp - 0x2c]
jmp 0x40ace3
mov dword [ebp - 0xc], 1
cmp esi, 1
jl 0x40ace3
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40ade4
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 8], eax
je 0x487ab7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487ab7
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x487ad9
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a5a0.151
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, esi
jle 0x487a6e
mov eax, dword [ebp - 0x2c]
jmp 0x40ace3
mov dword [ebp - 0xc], 1
cmp esi, 1
jl 0x40ace3
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40ade4
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 8], eax
je 0x487b6c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487b6c
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x487b8e
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a5a0.151
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, esi
jle 0x487b23
mov eax, dword [ebp - 0x2c]
jmp 0x40ace3
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x28], 1
cmp esi, 1
jl 0x40ace6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40ade4
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
test ecx, ecx
je 0x487c28
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487c28
mov eax, dword [ebp - 8]
and edx, 0x3ff
movzx eax, word [eax]
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add dword [ebp - 8], 2
mov dword [ebp - 0xc], edx
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and edx, 0x8000007f
jns 0x487c4d
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
mov eax, dword [eax*4 + 0x4b6cc8]
cmp eax, 1
je 0x487c74
cmp eax, 3
je 0x487c74
xor eax, eax
jmp 0x487c79
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a5a0.151
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, esi
jle 0x487bdb
mov eax, dword [ebp - 0x2c]
jmp 0x40ace6
mov dword [ebp - 0x28], 1
cmp esi, 1
jl 0x40ace3
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40ade4
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], eax
mov esi, eax
je 0x487cf9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487cf9
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], esi
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4ad470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x487d1f
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cc8], 6
je 0x487d53
cmp edx, 9
je 0x487d53
cmp edx, 0xa
je 0x487d53
cmp edx, 0xc
je 0x487d53
cmp edx, 0xd
je 0x487d53
xor eax, eax
jmp 0x487d58
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a5a0.151
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, dword [ebp - 0x14]
jle 0x487ca9
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x40ace9
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x488b6c
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], esi
je 0x487dda
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487dda
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], esi
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4ad470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x487e00
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cc8], 6
je 0x487e39
cmp edx, 9
je 0x487e39
cmp edx, 0xa
je 0x487e39
cmp edx, 0xb
je 0x487e39
cmp edx, 0xc
je 0x487e39
cmp edx, 0xd
je 0x487e39
xor eax, eax
jmp 0x487e3e
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a5a0.151
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, dword [ebp - 0x14]
jle 0x487d8f
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x40ace9
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x488b6c
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], esi
je 0x487ec0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487ec0
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], esi
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4ad470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x487ee6
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
mov eax, dword [eax*4 + 0x4b6cc8]
cmp eax, 1
je 0x487f12
cmp eax, 3
je 0x487f12
cmp edx, 0x5f
je 0x487f12
xor eax, eax
jmp 0x487f17
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a5a0.151
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, dword [ebp - 0x14]
jle 0x487e75
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x40ace9
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x40ace9
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x18], edx
mov dword [ebp - 8], esi
test ecx, ecx
je 0x487fa2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487f9f
movzx eax, word [esi]
and dword [ebp - 0x18], 0x3ff
shl dword [ebp - 0x18], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x18]
add eax, 0x10000
add esi, 2
mov dword [ebp - 0x18], eax
mov dword [ebp - 8], esi
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x40]
lea ebx, [ebx*4 + 0x4af670]
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebx]
cmp dword [ebp - 0x18], ebx
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
jb 0x487fd8
mov edx, dword [ebp - 0xc]
add dword [ebp - 0x10], 4
cmp dword [ebp - 0x18], edx
je 0x487ff6
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx]
cmp dword [ebp - 0x18], ecx
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x20]
jae 0x487fbc
cmp dword [ebp - 0x3c], 0
je case.0x40a5a0.151
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x487f54
mov eax, dword [ebp - 0x2c]
jmp 0x40ace9
cmp dword [ebp - 0x3c], 0
jne case.0x40a5a0.151
jmp 0x487fe2
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x40ace9
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x18], edx
mov dword [ebp - 8], esi
test ecx, ecx
je 0x488069
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x488066
movzx eax, word [esi]
and dword [ebp - 0x18], 0x3ff
shl dword [ebp - 0x18], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x18]
add eax, 0x10000
add esi, 2
mov dword [ebp - 0x18], eax
mov dword [ebp - 8], esi
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x18], 0x24
je 0x48809d
cmp dword [ebp - 0x18], 0x40
je 0x48809d
cmp dword [ebp - 0x18], 0x60
je 0x48809d
cmp dword [ebp - 0x18], 0xa0
jb 0x48808d
cmp dword [ebp - 0x18], 0xd7ff
jbe 0x48809d
cmp dword [ebp - 0x18], 0xe000
mov dword [ebp - 0xc], 0
jb 0x4880a4
mov dword [ebp - 0xc], 1
mov ebx, dword [ebp - 0x3c]
cmp dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
je case.0x40a5a0.151
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x48801b
mov eax, dword [ebp - 0x2c]
jmp 0x40ace9
cmp dword [ebp - 0x34], 0x16
mov ecx, dword [ebp - 0x20]
jne 0x488265
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x10], 1
jl 0x40ace9
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0x28], eax
cmp esi, eax
jae 0x48b349
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], esi
test ecx, ecx
je 0x488135
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x488135
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add esi, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], esi
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and edx, 0x8000007f
jns 0x48815a
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5d0]
movzx edx, byte [eax*8 + 0x4ac0d2]
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0xc], edx
cmp esi, eax
jae 0x488224
mov ebx, dword [ebp - 0x20]
mov edi, edx
movzx ecx, word [esi]
mov dword [ebp - 0xc], 1
test ebx, ebx
je 0x4881bc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4881bc
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov dword [ebp - 0xc], 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x4881de
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx ecx, byte [eax*8 + 0x4ac0d2]
mov eax, 1
shl eax, cl
test dword [edi*4 + 0x49f454], eax
je 0x488215
mov eax, dword [ebp - 0xc]
mov edi, ecx
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x28]
cmp esi, eax
jb 0x48817f
jmp 0x488218
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 8], esi
cmp dword [ebx + 0x8c], 0
je 0x48824d
cmp esi, eax
jb 0x48824d
cmp esi, dword [ebx + 0x88]
jbe 0x48824d
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x14]
jle 0x4880e7
mov eax, dword [ebp - 0x2c]
jmp 0x40ace9
test ecx, ecx
je 0x488a87
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffffa
cmp ecx, 0xf
ja case.default.0x486252
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffffa
jmp dword [ecx*4 + 0x48cf00]
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40ace9
lea eax, [esi + 2]
mov dword [ebp - 0x10], eax
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x48b349
cmp dword [ebx + 0x18], 0
je 0x488365
push ecx
lea eax, [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.00409126
add esp, 0xc
test eax, eax
jne case.0x40a5a0.151
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
cmp dword [ebx + 0x8c], 0
je 0x488315
cmp edx, dword [ebx + 0x7c]
jb 0x488315
cmp dword [ebx + 0x18], 0
jne 0x488315
cmp dword [ebx + 0x1c], 2
jne 0x488315
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x488315
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
add esi, 2
add edx, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], edx
cmp esi, dword [ebx + 0x7c]
jae 0x48834d
mov ax, word [esi]
mov dword [ebp - 0x28], 0xfc00
and ax, word [ebp - 0x28]
mov dword [ebp - 0x28], 0xdc00
cmp ax, word [ebp - 0x28]
jne 0x48834d
add esi, 2
add edx, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x4882a8
mov eax, dword [ebp - 0x2c]
jmp 0x40ace9
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x4882db
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x4882db
cmp dword [ebx + 0x1c], 1
je case.0x40a5a0.151
mov edx, dword [ebp - 0x10]
mov ax, word [edx]
cmp ax, word [ebx + 0x36]
je case.0x40a5a0.151
jmp 0x4882de
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x40ace9
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
add esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebx + 0x7c]
jae 0x4883f4
mov ax, word [esi]
mov dword [ebp - 0xc], 0xfc00
and ax, word [ebp - 0xc]
mov dword [ebp - 0xc], 0xdc00
cmp ax, word [ebp - 0xc]
mov eax, dword [ebp - 0x14]
jne 0x4883f4
add esi, 2
mov dword [ebp - 8], esi
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x4883bc
mov eax, dword [ebp - 0x2c]
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebx + 0x7c]
add esi, esi
sub eax, esi
mov dword [ebp - 0xc], esi
mov esi, dword [ebp - 8]
cmp esi, eax
ja case.0x40a5a0.151
add esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 8], esi
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40ace9
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x48848a
movzx eax, word [esi]
and dword [ebp - 0x10], 0x3ff
shl dword [ebp - 0x10], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x10]
add eax, 0x10000
add esi, 2
mov dword [ebp - 8], esi
jmp 0x48848d
mov eax, dword [ebp - 0x10]
cmp eax, 0xd
ja 0x4884ba
je 0x4884a7
cmp eax, 0xa
je 0x4884d9
add eax, 0xfffffff5
cmp eax, 1
ja case.0x40a5a0.151
jmp 0x4884cf
cmp esi, dword [ebx + 0x7c]
jae 0x4884d9
cmp word [esi], 0xa
jne 0x4884d9
add esi, 2
mov dword [ebp - 8], esi
jmp 0x4884d9
cmp eax, 0x85
je 0x4884cf
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x40a5a0.151
cmp dword [ebx + 0x6c], 0
jne case.0x40a5a0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x488446
mov eax, dword [ebp - 0x2c]
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40ace9
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x48854e
movzx eax, word [esi]
and dword [ebp - 0x10], 0x3ff
shl dword [ebp - 0x10], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x10]
add eax, 0x10000
add esi, 2
mov dword [ebp - 8], esi
jmp 0x488551
mov eax, dword [ebp - 0x10]
cmp eax, 0x180e
ja 0x48858c
je case.0x40a5a0.151
cmp eax, 0xa0
ja 0x48857f
je case.0x40a5a0.151
cmp eax, 9
je case.0x40a5a0.151
cmp eax, 0x20
je case.0x40a5a0.151
jmp 0x4885c3
cmp eax, 0x1680
je case.0x40a5a0.151
jmp 0x4885c3
cmp eax, 0x205f
ja 0x4885b8
je case.0x40a5a0.151
cmp eax, 0x2000
jb 0x4885c3
cmp eax, 0x200a
jbe case.0x40a5a0.151
cmp eax, 0x202f
je case.0x40a5a0.151
jmp 0x4885c3
cmp eax, 0x3000
je case.0x40a5a0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x48850a
mov eax, dword [ebp - 0x2c]
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40ace9
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x488638
movzx eax, word [esi]
and dword [ebp - 0x10], 0x3ff
shl dword [ebp - 0x10], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x10]
add eax, 0x10000
add esi, 2
mov dword [ebp - 8], esi
jmp 0x48863b
mov eax, dword [ebp - 0x10]
cmp eax, 0x180e
ja 0x48866a
je 0x48869d
cmp eax, 0xa0
ja 0x48865d
je 0x48869d
cmp eax, 9
je 0x48869d
cmp eax, 0x20
jne case.0x40a5a0.151
jmp 0x48869d
cmp eax, 0x1680
jne case.0x40a5a0.151
jmp 0x48869d
cmp eax, 0x205f
ja 0x488692
je 0x48869d
cmp eax, 0x2000
jb case.0x40a5a0.151
cmp eax, 0x200a
jbe 0x48869d
cmp eax, 0x202f
jne case.0x40a5a0.151
jmp 0x48869d
cmp eax, 0x3000
jne case.0x40a5a0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x4885f4
mov eax, dword [ebp - 0x2c]
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40ace9
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x488712
movzx eax, word [esi]
and dword [ebp - 0x10], 0x3ff
shl dword [ebp - 0x10], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x10]
add eax, 0x10000
add esi, 2
mov dword [ebp - 8], esi
jmp 0x488715
mov eax, dword [ebp - 0x10]
cmp eax, 0x85
ja 0x488732
je case.0x40a5a0.151
cmp eax, 0xa
jb 0x488744
cmp eax, 0xd
jbe case.0x40a5a0.151
jmp 0x488744
cmp eax, 0x2028
jb 0x488744
cmp eax, 0x2029
jbe case.0x40a5a0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x4886ce
mov eax, dword [ebp - 0x2c]
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40ace9
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x4887b9
movzx eax, word [esi]
and dword [ebp - 0x10], 0x3ff
shl dword [ebp - 0x10], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x10]
add eax, 0x10000
add esi, 2
mov dword [ebp - 8], esi
jmp 0x4887bc
mov eax, dword [ebp - 0x10]
cmp eax, 0x85
ja 0x4887d3
je 0x4887e1
add eax, 0xfffffff6
cmp eax, 3
ja case.0x40a5a0.151
jmp 0x4887e1
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x40a5a0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x488775
mov eax, dword [ebp - 0x2c]
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40ace9
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x488858
movzx eax, word [esi]
mov ecx, dword [ebp - 0x10]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or eax, ecx
mov ecx, dword [ebp - 0x20]
add eax, 0x10000
add esi, 2
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], esi
jmp 0x48885b
mov eax, dword [ebp - 0x10]
cmp eax, 0x80
jae 0x488872
mov eax, dword [ebx + 0x44]
mov edx, dword [ebp - 0x10]
test byte [edx + eax], 4
jne case.0x40a5a0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x48880e
mov eax, dword [ebp - 0x2c]
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40ace9
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
cmp word [esi], 0x80
jae case.0x40a5a0.151
movzx edx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
je case.0x40a5a0.151
mov eax, dword [ebp - 0xc]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x48889f
mov eax, dword [ebp - 0x2c]
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x40ace9
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
cmp word [esi], 0x80
jae 0x48891c
movzx edx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
jne case.0x40a5a0.151
mov eax, dword [ebp - 0x14]
add esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebx + 0x7c]
jae 0x48894b
mov ax, word [esi]
mov dword [ebp - 0xc], 0xfc00
and ax, word [ebp - 0xc]
mov dword [ebp - 0xc], 0xdc00
cmp ax, word [ebp - 0xc]
mov eax, dword [ebp - 0x14]
jne 0x48894b
add esi, 2
mov dword [ebp - 8], esi
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x4888f9
mov eax, dword [ebp - 0x2c]
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40ace9
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
cmp word [esi], 0x80
jae case.0x40a5a0.151
movzx edx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
je case.0x40a5a0.151
mov eax, dword [ebp - 0xc]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x488974
mov eax, dword [ebp - 0x2c]
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x40ace9
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
cmp word [esi], 0x80
jae 0x4889f1
movzx edx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
jne case.0x40a5a0.151
mov eax, dword [ebp - 0x14]
add esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebx + 0x7c]
jae 0x488a20
mov ax, word [esi]
mov dword [ebp - 0xc], 0xfc00
and ax, word [ebp - 0xc]
mov dword [ebp - 0xc], 0xdc00
cmp ax, word [ebp - 0xc]
mov eax, dword [ebp - 0x14]
jne 0x488a20
add esi, 2
mov dword [ebp - 8], esi
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x4889ce
mov eax, dword [ebp - 0x2c]
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40ace9
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
cmp word [esi], 0x80
jae case.0x40a5a0.151
movzx edx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
je case.0x40a5a0.151
mov eax, dword [ebp - 0xc]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x488a49
mov eax, dword [ebp - 0x2c]
jmp 0x40ace9
mov edx, dword [ebp - 0x34]
add edx, 0xfffffffa
cmp edx, 0xf
ja case.default.0x486252
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffffa
jmp dword [ecx*4 + 0x48cf40]
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40ace9
mov ecx, dword [ebx + 0x7c]
cmp esi, ecx
jae 0x48b349
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x488aec
lea eax, [ebx + 0x1c]
push 0
push eax
push ecx
mov ecx, esi
call fcn.00409126
add esp, 0xc
test eax, eax
jne case.0x40a5a0.151
lea edx, [ebx + 0x1c]
jmp 0x488b1a
mov eax, dword [ebx + 0x1c]
lea edx, [ebx + 0x1c]
add eax, eax
sub ecx, eax
cmp esi, ecx
ja 0x488b1a
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x488b1a
cmp dword [edx], 1
je case.0x40a5a0.151
mov ax, word [esi + 2]
cmp ax, word [ebx + 0x36]
je case.0x40a5a0.151
cmp dword [ebx + 0x8c], 0
je 0x488b53
lea eax, [esi + 2]
cmp eax, dword [ebx + 0x7c]
jb 0x488b53
cmp dword [ebx + 0x18], 0
jne 0x488b53
cmp dword [edx], 2
jne 0x488b53
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x488b53
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
mov eax, dword [ebp - 0xc]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x488abc
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebx + 0x7c]
add esi, esi
sub eax, esi
mov dword [ebp - 0xc], esi
mov esi, dword [ebp - 8]
cmp esi, eax
ja 0x48b349
add esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 8], esi
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebx + 0x7c]
add esi, esi
sub eax, esi
mov dword [ebp - 0xc], esi
mov esi, dword [ebp - 8]
cmp esi, eax
ja 0x48b349
add esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 8], esi
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x40ace9
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx ecx, word [esi]
add esi, 2
mov dword [ebp - 0x10], ecx
cmp ecx, 0xd
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 8], esi
jg 0x488c2f
cmp dword [ebp - 0x10], 0xd
je 0x488c1c
cmp dword [ebp - 0x10], 0xa
je 0x488c56
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff5
cmp eax, 1
ja case.0x40a5a0.151
jmp 0x488c49
cmp esi, dword [ebx + 0x7c]
jae 0x488c56
cmp word [esi], 0xa
jne 0x488c56
add esi, 2
mov dword [ebp - 8], esi
jmp 0x488c56
cmp dword [ebp - 0x10], 0x85
je 0x488c4c
mov eax, dword [ebp - 0x10]
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x40a5a0.151
mov eax, dword [ebp - 0x14]
cmp dword [ebx + 0x6c], 0
jne case.0x40a5a0.151
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x488be2
mov eax, dword [ebp - 0x2c]
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40ace9
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x18], edx
mov dword [ebp - 8], esi
cmp edx, 0x180e
jg 0x488cd9
cmp edx, 0x180e
je case.0x40a5a0.151
cmp edx, 0xa0
jg 0x488cca
je case.0x40a5a0.151
cmp edx, 9
je case.0x40a5a0.151
cmp edx, 0x20
je case.0x40a5a0.151
jmp 0x488d1a
cmp dword [ebp - 0x18], 0x1680
je case.0x40a5a0.151
jmp 0x488d1a
cmp dword [ebp - 0x18], 0x205f
jg 0x488d0d
je case.0x40a5a0.151
cmp dword [ebp - 0x18], 0x2000
jl 0x488d1a
cmp dword [ebp - 0x18], 0x200a
jle case.0x40a5a0.151
cmp dword [ebp - 0x18], 0x202f
je case.0x40a5a0.151
jmp 0x488d1a
cmp dword [ebp - 0x18], 0x3000
je case.0x40a5a0.151
mov ebx, dword [ebp - 0xc]
inc ebx
cmp ebx, dword [ebp - 0x14]
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
jle 0x488c7f
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40ace9
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x18], edx
mov dword [ebp - 8], esi
cmp edx, 0x180e
jg 0x488d99
cmp edx, 0x180e
je 0x488dd6
cmp edx, 0xa0
jg 0x488d8a
je 0x488dd6
cmp edx, 9
je 0x488dd6
cmp edx, 0x20
jne case.0x40a5a0.151
jmp 0x488dd6
cmp dword [ebp - 0x18], 0x1680
jne case.0x40a5a0.151
jmp 0x488dd6
cmp dword [ebp - 0x18], 0x205f
jg 0x488dc9
je 0x488dd6
cmp dword [ebp - 0x18], 0x2000
jl case.0x40a5a0.151
cmp dword [ebp - 0x18], 0x200a
jle 0x488dd6
cmp dword [ebp - 0x18], 0x202f
jne case.0x40a5a0.151
jmp 0x488dd6
cmp dword [ebp - 0x18], 0x3000
jne case.0x40a5a0.151
mov ecx, dword [ebp - 0xc]
inc ecx
cmp ecx, dword [ebp - 0x14]
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x20]
jle 0x488d4b
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40ace9
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x10], edx
mov dword [ebp - 8], esi
cmp edx, 0x85
jg 0x488e40
cmp edx, 0x85
je case.0x40a5a0.151
cmp edx, 0xa
jl 0x488e56
cmp edx, 0xd
jle case.0x40a5a0.151
jmp 0x488e56
cmp dword [ebp - 0x10], 0x2028
jl 0x488e56
cmp dword [ebp - 0x10], 0x2029
jle case.0x40a5a0.151
mov edx, dword [ebp - 0xc]
inc edx
mov dword [ebp - 0xc], edx
cmp edx, dword [ebp - 0x14]
jle 0x488e07
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x10], 1
jl 0x40ace9
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx ecx, word [esi]
add esi, 2
mov dword [ebp - 0x28], ecx
cmp ecx, 0x85
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 8], esi
jg 0x488ebd
cmp dword [ebp - 0x28], 0x85
je 0x488ed1
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff6
cmp eax, 3
ja case.0x40a5a0.151
jmp 0x488ece
mov eax, dword [ebp - 0x28]
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x40a5a0.151
mov eax, dword [ebp - 0x14]
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], eax
jle 0x488e83
mov eax, dword [ebp - 0x2c]
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x40ace9
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx edx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp dx, word [ebp - 0xc]
ja 0x488f2f
movzx ecx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
jne case.0x40a5a0.151
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
inc ecx
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x28], ecx
cmp ecx, eax
jle 0x488f00
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40ace9
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja case.0x40a5a0.151
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
je case.0x40a5a0.151
mov eax, dword [ebp - 0xc]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x488f61
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x40ace9
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx edx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp dx, word [ebp - 0xc]
ja 0x488ff5
movzx ecx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
jne case.0x40a5a0.151
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
inc ecx
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x28], ecx
cmp ecx, eax
jle 0x488fc6
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40ace9
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja case.0x40a5a0.151
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
je case.0x40a5a0.151
mov eax, dword [ebp - 0xc]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x489027
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x40ace9
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx edx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp dx, word [ebp - 0xc]
ja 0x4890bb
movzx ecx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
jne case.0x40a5a0.151
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
inc ecx
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x28], ecx
cmp ecx, eax
jle 0x48908c
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x40ace9
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0xc], 1
cmp esi, 1
jl 0x40ace6
mov esi, dword [ebp - 8]
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja case.0x40a5a0.151
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je case.0x40a5a0.151
mov eax, dword [ebp - 0xc]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x4890ed
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x40ace9
mov dword [ebp - 0x2c], esi
test eax, eax
js 0x489ab0
cmp eax, 0xa
ja case.default.0x486252
jmp dword [eax*4 + 0x48cf80]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x4892bd
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x10], 1
cmp esi, dword [ebx + 0x7c]
jae 0x4891be
test ecx, ecx
je 0x489197
mov edx, dword [ebp - 0x10]
mov eax, 0xfc00
and ax, word [esi]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0xc], 0xd800
cmp ax, word [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov edx, 2
cmove eax, edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x3c], 0
mov edx, dword [ebp - 0x24]
jne 0x4892bd
mov ebx, dword [ebp - 0x10]
inc eax
lea esi, [esi + ebx*2]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x48915a
jmp 0x4892bd
cmp dword [ebx + 0x8c], 0
je 0x4892bd
cmp esi, dword [ebx + 0x88]
jbe 0x4892bd
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x4892bd
mov eax, 0xfffffff4
jmp 0x40a6c7
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x4892bd
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x489321
movzx edx, word [esi]
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x48924d
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48924d
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add edx, 0x10000
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x30], 2
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and edx, 0x8000007f
jns 0x489272
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp eax, 9
je 0x489297
cmp eax, 5
je 0x489297
cmp eax, 8
je 0x489297
xor eax, eax
jmp 0x48929c
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x4892ba
mov eax, dword [ebp - 0x30]
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x489201
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x40a580
cmp esi, dword [ebp - 0x2c]
je 0x40a5ee
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
sub esi, 2
mov dword [ebp - 8], esi
cmp dword [ebp - 0x20], eax
je 0x489317
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x489317
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x2c]
jne 0x4892ce
jmp 0x40a5ee
cmp dword [ebx + 0x8c], 0
je 0x4892ba
cmp esi, dword [ebx + 0x88]
jbe 0x4892ba
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x4892ba
mov eax, 0xfffffff4
jmp 0x40a6c7
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x4892bd
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x489321
movzx eax, word [esi]
mov dword [ebp - 0x30], eax
test ecx, ecx
je 0x4893a3
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4893a6
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov dword [ebp - 0xc], 2
jmp 0x4893a6
movzx ecx, word [esi]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x4893c8
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x40]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cc8], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x4892ba
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x20]
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x48935c
jmp 0x4892ba
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x4892bd
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x489321
movzx eax, word [esi]
mov dword [ebp - 0x30], eax
test ecx, ecx
je 0x48946a
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48946d
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov dword [ebp - 0xc], 2
jmp 0x48946d
movzx ecx, word [esi]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x48948f
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x4892ba
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x20]
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x48941f
jmp 0x4892ba
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x4892bd
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x489321
movzx eax, word [esi]
mov dword [ebp - 0x30], eax
test ecx, ecx
je 0x48952a
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48952d
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov dword [ebp - 0xc], 2
jmp 0x48952d
movzx ecx, word [esi]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x48954f
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x4892ba
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x20]
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x4894df
jmp 0x4892ba
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x4892bd
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x489321
movzx edx, word [esi]
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x4895eb
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4895eb
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add edx, 0x10000
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x30], 2
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and edx, 0x8000007f
jns 0x489610
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
mov eax, dword [eax*4 + 0x4b6cc8]
cmp eax, 1
je 0x489637
cmp eax, 3
je 0x489637
xor eax, eax
jmp 0x48963c
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x4892ba
mov eax, dword [ebp - 0x30]
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x48959f
jmp 0x4892ba
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x4892bd
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x489321
movzx edx, word [esi]
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x4896bb
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4896bb
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add edx, 0x10000
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x30], 2
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4ad470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x4896e1
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cc8], 6
je 0x489715
cmp edx, 9
je 0x489715
cmp edx, 0xa
je 0x489715
cmp edx, 0xc
je 0x489715
cmp edx, 0xd
je 0x489715
xor eax, eax
jmp 0x48971a
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x4892ba
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x48966f
jmp 0x4892ba
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x4892bd
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x489321
movzx edx, word [esi]
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x48979c
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48979c
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add edx, 0x10000
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x30], 2
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4ad470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x4897c2
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cc8], 6
je 0x4897fb
cmp edx, 9
je 0x4897fb
cmp edx, 0xa
je 0x4897fb
cmp edx, 0xb
je 0x4897fb
cmp edx, 0xc
je 0x4897fb
cmp edx, 0xd
je 0x4897fb
xor eax, eax
jmp 0x489800
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x4892ba
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x489750
jmp 0x4892ba
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x4892bd
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x489321
movzx edx, word [esi]
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x489882
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489882
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add edx, 0x10000
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x30], 2
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4ad470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x4898a8
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
mov eax, dword [eax*4 + 0x4b6cc8]
cmp eax, 1
je 0x4898d4
cmp eax, 3
je 0x4898d4
cmp edx, 0x5f
je 0x4898d4
xor eax, eax
jmp 0x4898d9
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x4892ba
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x489836
jmp 0x4892ba
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x4892bd
mov ecx, dword [ebx + 0x7c]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x20]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x30], 1
cmp esi, dword [ebp - 0x10]
jae 0x4891be
movzx edx, word [esi]
mov dword [ebp - 0x18], edx
test ecx, ecx
je 0x48996c
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489969
movzx eax, word [esi + 2]
and dword [ebp - 0x18], 0x3ff
shl dword [ebp - 0x18], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x18]
mov dword [ebp - 0x30], 2
add eax, 0x10000
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x40]
lea edx, [edx*4 + 0x4af670]
mov dword [ebp - 0x28], edx
mov edx, dword [edx]
cmp dword [ebp - 0x18], edx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x24]
jb 0x4899a5
mov ebx, dword [ebp - 0xc]
add dword [ebp - 0x28], 4
cmp dword [ebp - 0x18], ebx
mov ebx, dword [ebp + 0x10]
je 0x4899d0
mov edx, dword [ebp - 0x28]
mov edx, dword [edx]
cmp dword [ebp - 0x18], edx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x24]
jae 0x489986
cmp dword [ebp - 0x3c], 0
mov edx, dword [ebp - 0x24]
je 0x4892bd
mov ecx, dword [ebp - 0x30]
inc eax
lea esi, [esi + ecx*2]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x489918
jmp 0x4892bd
cmp dword [ebp - 0x3c], 0
je 0x4899b2
jmp 0x4892bd
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x4892bd
mov edx, dword [ebx + 0x7c]
mov dword [ebp - 0x28], edx
mov edx, dword [ebp - 0x24]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x30], 1
cmp esi, dword [ebp - 0x28]
jae 0x4891be
movzx edx, word [esi]
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x24]
test ecx, ecx
je 0x489a48
mov eax, dword [ebp - 0x18]
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489a45
movzx eax, word [esi + 2]
and dword [ebp - 0x18], 0x3ff
shl dword [ebp - 0x18], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x18]
mov dword [ebp - 0x30], 2
add eax, 0x10000
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x18], 0x24
je 0x489a7c
cmp dword [ebp - 0x18], 0x40
je 0x489a7c
cmp dword [ebp - 0x18], 0x60
je 0x489a7c
cmp dword [ebp - 0x18], 0xa0
jb 0x489a6c
cmp dword [ebp - 0x18], 0xd7ff
jbe 0x489a7c
cmp dword [ebp - 0x18], 0xe000
mov dword [ebp - 0xc], 0
jb 0x489a83
mov dword [ebp - 0xc], 1
mov ebx, dword [ebp - 0x3c]
cmp dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
je 0x4892bd
mov edx, dword [ebp - 0x30]
inc eax
lea esi, [esi + edx*2]
mov edx, dword [ebp - 0x24]
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x4899f0
jmp 0x4892bd
mov eax, dword [ebp - 0x34]
cmp eax, 0x16
jne 0x489cb5
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x489c68
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0x30], eax
cmp esi, eax
jae 0x489c40
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], esi
test ecx, ecx
je 0x489b16
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489b16
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add esi, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], esi
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and edx, 0x8000007f
jns 0x489b3b
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5d0]
movzx edx, byte [eax*8 + 0x4ac0d2]
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0xc], edx
cmp esi, eax
jae 0x489c05
mov ebx, dword [ebp - 0x20]
mov edi, edx
movzx ecx, word [esi]
mov dword [ebp - 0xc], 1
test ebx, ebx
je 0x489b9d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489b9d
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov dword [ebp - 0xc], 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x489bbf
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx ecx, byte [eax*8 + 0x4ac0d2]
mov eax, 1
shl eax, cl
test dword [edi*4 + 0x49f454], eax
je 0x489bf6
mov eax, dword [ebp - 0xc]
mov edi, ecx
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x30]
cmp esi, eax
jb 0x489b60
jmp 0x489bf9
mov eax, dword [ebp - 0x30]
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 8], esi
cmp dword [ebx + 0x8c], 0
je 0x489c2e
cmp esi, eax
jb 0x489c2e
cmp esi, dword [ebx + 0x88]
jbe 0x489c2e
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x489ac8
jmp 0x489c65
cmp dword [ebx + 0x8c], 0
je 0x489c65
cmp esi, dword [ebx + 0x88]
jbe 0x489c65
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x40a580
cmp esi, dword [ebp - 0x2c]
je 0x40a5ee
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov ebx, dword [ebp - 0x20]
sub esi, 2
mov dword [ebp - 8], esi
test ebx, ebx
jne 0x48ac84
movzx ecx, word [esi]
jmp 0x48acc7
add eax, 0xfffffffa
test ecx, ecx
je 0x48a5e5
cmp eax, 0xf
ja case.default.0x486252
jmp dword [eax*4 + 0x48cfac]
mov eax, dword [ebp - 0x1c]
cmp eax, 0x7fffffff
jge 0x489e97
cmp dword [ebp - 0x14], eax
jge 0x489da5
lea eax, [esi + 2]
mov dword [ebp - 0x10], eax
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x489e60
cmp dword [ebx + 0x18], 0
je 0x489e25
push ecx
lea eax, [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.00409126
add esp, 0xc
test eax, eax
jne 0x489da2
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
cmp dword [ebx + 0x8c], 0
je 0x489d5a
cmp edx, dword [ebx + 0x7c]
jb 0x489d5a
cmp dword [ebx + 0x18], 0
jne 0x489d5a
cmp dword [ebx + 0x1c], 2
jne 0x489d5a
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x489d5a
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
add esi, 2
add edx, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], edx
cmp esi, dword [ebx + 0x7c]
jae 0x489d92
mov ax, word [esi]
mov dword [ebp - 0xc], 0xfc00
and ax, word [ebp - 0xc]
mov dword [ebp - 0xc], 0xdc00
cmp ax, word [ebp - 0xc]
jne 0x489d92
add esi, 2
add edx, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x489ced
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x40a580
cmp esi, dword [ebp - 0x2c]
je 0x40a5ee
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov ax, word [esi - 2]
sub esi, 2
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
mov dword [ebp - 8], esi
cmp ax, cx
jne 0x489dfb
sub esi, 2
mov dword [ebp - 8], esi
cmp dword [ebp - 0x34], 0x11
mov ecx, dword [ebp - 0x2c]
jne 0x489e1c
cmp esi, ecx
jbe 0x489e1e
cmp word [esi], 0xa
jne 0x489e1c
cmp word [esi - 2], 0xd
lea eax, [esi - 2]
cmove esi, eax
mov dword [ebp - 8], esi
cmp esi, ecx
jne 0x489db6
jmp 0x40a5ee
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x489d20
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x489d20
cmp dword [ebx + 0x1c], 1
je 0x489da2
mov edx, dword [ebp - 0x10]
mov ax, word [edx]
cmp ax, word [ebx + 0x36]
jne 0x489d23
jmp 0x489da2
cmp dword [ebx + 0x8c], 0
je 0x489da2
cmp esi, dword [ebx + 0x88]
jbe 0x489da2
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x489da2
mov eax, 0xfffffff4
jmp 0x40a6c7
cmp dword [ebp - 0x14], eax
jge 0x489da5
lea eax, [esi + 2]
mov dword [ebp - 0x10], eax
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x489e60
cmp dword [ebx + 0x18], 0
je 0x489f5c
push ecx
lea eax, [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.00409126
add esp, 0xc
test eax, eax
jne 0x489da2
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
cmp dword [ebx + 0x8c], 0
je 0x489f0f
cmp edx, dword [ebx + 0x7c]
jb 0x489f0f
cmp dword [ebx + 0x18], 0
jne 0x489f0f
cmp dword [ebx + 0x1c], 2
jne 0x489f0f
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x489f0f
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
add esi, 2
add edx, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], edx
cmp esi, dword [ebx + 0x7c]
jae 0x489f47
mov ax, word [esi]
mov dword [ebp - 0xc], 0xfc00
and ax, word [ebp - 0xc]
mov dword [ebp - 0xc], 0xdc00
cmp ax, word [ebp - 0xc]
jne 0x489f47
add esi, 2
add edx, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x489ea6
jmp 0x489da2
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x489ed5
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x489ed5
cmp dword [ebx + 0x1c], 1
je 0x489da2
mov edx, dword [ebp - 0x10]
mov ax, word [edx]
cmp ax, word [ebx + 0x36]
jne 0x489ed8
jmp 0x489da2
mov eax, dword [ebp - 0x1c]
cmp eax, 0x7fffffff
jge 0x489fec
mov ecx, dword [ebp - 0x14]
cmp ecx, eax
jge 0x489da5
mov eax, dword [ebx + 0x7c]
cmp esi, eax
jae 0x489ff6
add esi, 2
mov dword [ebp - 8], esi
cmp esi, eax
jae 0x489fe1
mov ax, word [esi]
mov dword [ebp - 0xc], 0xfc00
and ax, word [ebp - 0xc]
mov dword [ebp - 0xc], 0xdc00
cmp ax, word [ebp - 0xc]
mov eax, dword [ebx + 0x7c]
jne 0x489fe1
add esi, 2
mov dword [ebp - 8], esi
inc ecx
cmp ecx, dword [ebp - 0x1c]
jl 0x489faf
jmp 0x489da5
mov esi, dword [ebx + 0x7c]
jmp 0x489ff3
mov esi, ecx
mov dword [ebp - 8], esi
cmp dword [ebx + 0x8c], 0
je 0x489da5
cmp esi, dword [ebx + 0x88]
jbe 0x489da5
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x489da5
mov eax, 0xfffffff4
jmp 0x40a6c7
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x14]
mov ecx, dword [ebx + 0x7c]
mov dword [ebp - 0x1c], eax
mov eax, ecx
sub eax, esi
sar eax, 1
cmp dword [ebp - 0x1c], eax
ja 0x489ff1
mov eax, dword [ebp - 0x1c]
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
jmp 0x489da5
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489da5
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0xc], 1
cmp esi, eax
jae 0x489ff6
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a0a3
movzx eax, word [esi + 2]
and dword [ebp - 0x10], 0x3ff
shl dword [ebp - 0x10], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], 2
add eax, 0x10000
jmp 0x48a0a6
mov eax, dword [ebp - 0x10]
cmp eax, 0xd
jne 0x48a0c7
mov eax, dword [ebx + 0x7c]
add esi, 2
mov dword [ebp - 8], esi
cmp esi, eax
jae 0x489da5
cmp word [esi], 0xa
jne 0x48a105
add esi, 2
jmp 0x48a102
cmp eax, 0xa
je 0x48a0f9
cmp dword [ebx + 0x6c], 0
jne 0x489da5
cmp eax, 0xb
je 0x48a0f9
cmp eax, 0xc
je 0x48a0f9
cmp eax, 0x85
je 0x48a0f9
cmp eax, 0x2028
je 0x48a0f9
cmp eax, 0x2029
jne 0x489da5
mov eax, dword [ebp - 0xc]
lea esi, [esi + eax*2]
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 8], esi
inc ecx
cmp ecx, dword [ebp - 0x1c]
jl 0x48a061
jmp 0x489da5
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489da5
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x489ff6
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a167
movzx eax, word [esi + 2]
and dword [ebp - 0x10], 0x3ff
shl dword [ebp - 0x10], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x10]
mov dword [ebp - 0x30], 2
add eax, 0x10000
jmp 0x48a16a
mov eax, dword [ebp - 0x10]
cmp eax, 0x180e
ja 0x48a1c0
je 0x48a186
cmp eax, 0xa0
ja 0x48a1b7
je 0x48a186
cmp eax, 9
je 0x48a186
cmp eax, 0x20
jne 0x48a1e7
mov dword [ebp - 0xc], 1
xor eax, eax
cmp dword [ebp - 0x34], 0x12
sete al
cmp dword [ebp - 0xc], eax
je 0x489da5
mov eax, dword [ebp - 0x30]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a120
jmp 0x489da5
cmp eax, 0x1680
jne 0x48a1e7
jmp 0x48a186
cmp eax, 0x205f
ja 0x48a1e0
je 0x48a186
cmp eax, 0x2000
jb 0x48a1e7
cmp eax, 0x200a
jbe 0x48a186
cmp eax, 0x202f
jne 0x48a1e7
jmp 0x48a186
cmp eax, 0x3000
je 0x48a186
mov dword [ebp - 0xc], 0
jmp 0x48a18d
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489da5
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x489ff6
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a243
movzx eax, word [esi + 2]
and dword [ebp - 0x10], 0x3ff
shl dword [ebp - 0x10], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x10]
mov dword [ebp - 0x30], 2
add eax, 0x10000
jmp 0x48a246
mov eax, dword [ebp - 0x10]
cmp eax, 0x85
ja 0x48a28a
je 0x48a294
cmp eax, 0xa
jb 0x48a259
cmp eax, 0xd
jbe 0x48a294
mov dword [ebp - 0xc], 0
xor eax, eax
cmp dword [ebp - 0x34], 0x14
sete al
cmp dword [ebp - 0xc], eax
je 0x489da5
mov eax, dword [ebp - 0x30]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a1fc
jmp 0x489da5
add eax, 0xffffdfd8
cmp eax, 1
ja 0x48a259
mov dword [ebp - 0xc], 1
jmp 0x48a260
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489da5
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x489ff6
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a2f6
mov edx, dword [ebp - 0x28]
movzx eax, word [esi + 2]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or eax, edx
mov edx, dword [ebp - 0x24]
add eax, 0x10000
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xc], 2
jmp 0x48a2f9
movzx eax, word [esi]
cmp eax, 0x100
jae 0x48a313
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
mov edx, dword [ebp - 0x24]
jne 0x489da5
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a2a9
jmp 0x489da5
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489da5
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x489ff6
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a380
mov edx, dword [ebp - 0x28]
movzx eax, word [esi + 2]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or eax, edx
mov edx, dword [ebp - 0x24]
add eax, 0x10000
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xc], 2
jmp 0x48a383
movzx eax, word [esi]
cmp eax, 0x100
jae 0x489da5
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
mov edx, dword [ebp - 0x24]
je 0x489da5
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a333
jmp 0x489da5
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489da5
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x489ff6
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a40e
mov edx, dword [ebp - 0x28]
movzx eax, word [esi + 2]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or eax, edx
mov edx, dword [ebp - 0x24]
add eax, 0x10000
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xc], 2
jmp 0x48a411
movzx eax, word [esi]
cmp eax, 0x100
jae 0x48a42b
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
mov edx, dword [ebp - 0x24]
jne 0x489da5
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a3c1
jmp 0x489da5
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489da5
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x489ff6
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a498
mov edx, dword [ebp - 0x28]
movzx eax, word [esi + 2]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or eax, edx
mov edx, dword [ebp - 0x24]
add eax, 0x10000
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xc], 2
jmp 0x48a49b
movzx eax, word [esi]
cmp eax, 0x100
jae 0x489da5
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
mov edx, dword [ebp - 0x24]
je 0x489da5
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a44b
jmp 0x489da5
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489da5
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x489ff6
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a526
mov edx, dword [ebp - 0x28]
movzx eax, word [esi + 2]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or eax, edx
mov edx, dword [ebp - 0x24]
add eax, 0x10000
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xc], 2
jmp 0x48a529
movzx eax, word [esi]
cmp eax, 0x100
jae 0x48a543
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
mov edx, dword [ebp - 0x24]
jne 0x489da5
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a4d9
jmp 0x489da5
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489da5
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x489ff6
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a5b0
mov edx, dword [ebp - 0x28]
movzx eax, word [esi + 2]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or eax, edx
mov edx, dword [ebp - 0x24]
add eax, 0x10000
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xc], 2
jmp 0x48a5b3
movzx eax, word [esi]
cmp eax, 0x100
jae 0x489da5
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
mov edx, dword [ebp - 0x24]
je 0x489da5
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a563
jmp 0x489da5
cmp eax, 0xf
ja case.default.0x486252
jmp dword [eax*4 + 0x48cfec]
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x48a6a3
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x48a707
cmp dword [ebx + 0x18], 0
je 0x48a62f
lea eax, [ebx + 0x1c]
push 0
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.00409126
add esp, 0xc
test eax, eax
jne 0x48a6a0
mov ecx, dword [ebp - 0x14]
jmp 0x48a653
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x48a653
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x48a653
cmp dword [ebx + 0x1c], 1
je 0x48a6a0
mov ax, word [esi + 2]
cmp ax, word [ebx + 0x36]
je 0x48a6a0
cmp dword [ebx + 0x8c], 0
je 0x48a68d
lea eax, [esi + 2]
cmp eax, dword [ebx + 0x7c]
jb 0x48a68d
cmp dword [ebx + 0x18], 0
jne 0x48a68d
cmp dword [ebx + 0x1c], 2
jne 0x48a68d
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x48a68d
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
inc ecx
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], ecx
cmp ecx, dword [ebp - 0x1c]
jl 0x48a601
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x40a580
cmp esi, dword [ebp - 0x2c]
je 0x40a5ee
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov ecx, dword [ebp - 0x2c]
sub esi, 2
cmp dword [ebp - 0x34], 0x11
mov dword [ebp - 8], esi
jne 0x48a6fe
cmp esi, ecx
jbe 0x48a700
cmp word [esi], 0xa
jne 0x48a6fe
cmp word [esi - 2], 0xd
lea eax, [esi - 2]
cmove esi, eax
mov dword [ebp - 8], esi
cmp esi, ecx
jne 0x48a6b4
jmp 0x40a5ee
cmp dword [ebx + 0x8c], 0
je 0x48a6a0
cmp esi, dword [ebx + 0x88]
jbe 0x48a6a0
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x48a6a0
mov eax, 0xfffffff4
jmp 0x40a6c7
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x14]
mov ecx, dword [ebx + 0x7c]
mov dword [ebp - 0x1c], eax
mov eax, ecx
sub eax, esi
sar eax, 1
cmp dword [ebp - 0x1c], eax
jbe 0x48a789
mov esi, ecx
mov dword [ebp - 8], esi
cmp dword [ebx + 0x8c], 0
je 0x48a6a3
cmp esi, dword [ebx + 0x88]
jbe 0x48a6a3
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x48a6a3
mov eax, 0xfffffff4
jmp 0x40a6c7
mov eax, dword [ebp - 0x1c]
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
jmp 0x48a6a3
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48a6a3
mov ecx, dword [ebx + 0x7c]
cmp esi, ecx
jae 0x48a752
movzx ecx, word [esi]
cmp ecx, 0xd
jne 0x48a7cb
mov ecx, dword [ebx + 0x7c]
add esi, 2
mov dword [ebp - 8], esi
cmp esi, ecx
jae 0x48a6a3
cmp word [esi], 0xa
je 0x48a803
jmp 0x48a809
cmp ecx, 0xa
je 0x48a800
cmp dword [ebx + 0x6c], 0
jne 0x48a6a3
cmp ecx, 0xb
je 0x48a800
cmp ecx, 0xc
je 0x48a800
cmp ecx, 0x85
je 0x48a800
cmp ecx, 0x2028
je 0x48a800
cmp ecx, 0x2029
jne 0x48a6a3
mov ecx, dword [ebx + 0x7c]
add esi, 2
mov dword [ebp - 8], esi
inc eax
cmp eax, dword [ebp - 0x1c]
jl 0x48a7a6
jmp 0x48a6a3
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48a6a3
cmp esi, dword [ebx + 0x7c]
jae 0x48a752
movzx ecx, word [esi]
cmp ecx, 0x180e
jg 0x48a868
je 0x48a6a3
cmp ecx, 0xa0
jg 0x48a85b
je 0x48a6a3
cmp ecx, 9
je 0x48a6a3
cmp ecx, 0x20
jne 0x48a8a3
jmp 0x48a6a3
cmp ecx, 0x1680
jne 0x48a8a3
jmp 0x48a6a3
cmp ecx, 0x205f
jg 0x48a897
je 0x48a6a3
cmp ecx, 0x2000
jl 0x48a8a3
cmp ecx, 0x200a
jle 0x48a6a3
cmp ecx, 0x202f
jne 0x48a8a3
jmp 0x48a6a3
cmp ecx, 0x3000
je 0x48a6a3
add esi, 2
inc eax
mov dword [ebp - 8], esi
cmp eax, dword [ebp - 0x1c]
jl 0x48a820
jmp 0x48a6a3
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48a6a3
cmp esi, dword [ebx + 0x7c]
jae 0x48a752
movzx ecx, word [esi]
cmp ecx, 0x180e
jg 0x48a900
je 0x48a937
cmp ecx, 0xa0
jg 0x48a8f3
je 0x48a937
cmp ecx, 9
je 0x48a937
cmp ecx, 0x20
je 0x48a937
jmp 0x48a6a3
cmp ecx, 0x1680
je 0x48a937
jmp 0x48a6a3
cmp ecx, 0x205f
jg 0x48a92b
je 0x48a937
cmp ecx, 0x2000
jl 0x48a6a3
cmp ecx, 0x200a
jle 0x48a937
cmp ecx, 0x202f
je 0x48a937
jmp 0x48a6a3
cmp ecx, 0x3000
jne 0x48a6a3
add esi, 2
inc eax
mov dword [ebp - 8], esi
cmp eax, dword [ebp - 0x1c]
jl 0x48a8c4
jmp 0x48a6a3
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48a6a3
cmp esi, dword [ebx + 0x7c]
jae 0x48a752
movzx ecx, word [esi]
cmp ecx, 0x85
jg 0x48a97d
je 0x48a6a3
cmp ecx, 0xa
jl 0x48a991
cmp ecx, 0xd
jg 0x48a991
jmp 0x48a6a3
cmp ecx, 0x2028
jl 0x48a991
cmp ecx, 0x2029
jle 0x48a6a3
add esi, 2
inc eax
mov dword [ebp - 8], esi
cmp eax, dword [ebp - 0x1c]
jl 0x48a954
jmp 0x48a6a3
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x48a6a3
cmp esi, dword [ebx + 0x7c]
jae 0x48a752
movzx eax, word [esi]
cmp eax, 0x85
jg 0x48a9d0
je 0x48a9de
add eax, 0xfffffff6
cmp eax, 3
jbe 0x48a9de
jmp 0x48a6a3
add eax, 0xffffdfd8
cmp eax, 1
ja 0x48a6a3
add esi, 2
inc ecx
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a9ae
jmp 0x48a6a3
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48a6a3
cmp esi, dword [ebx + 0x7c]
jae 0x48a752
movzx ecx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp cx, word [ebp - 0xc]
ja 0x48aa24
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
jne 0x48a6a3
mov eax, dword [ebp - 0x14]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x48a9fb
jmp 0x48a6a3
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x48a6a3
cmp esi, dword [ebx + 0x7c]
jae 0x48a752
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja 0x48a6a3
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
je 0x48a6a3
mov eax, dword [ebp - 0x14]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x48aa44
jmp 0x48a6a3
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48a6a3
cmp esi, dword [ebx + 0x7c]
jae 0x48a752
movzx ecx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp cx, word [ebp - 0xc]
ja 0x48aab9
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
jne 0x48a6a3
mov eax, dword [ebp - 0x14]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x48aa90
jmp 0x48a6a3
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x48a6a3
cmp esi, dword [ebx + 0x7c]
jae 0x48a752
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja 0x48a6a3
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
je 0x48a6a3
mov eax, dword [ebp - 0x14]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x48aad9
jmp 0x48a6a3
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48a6a3
cmp esi, dword [ebx + 0x7c]
jae 0x48a752
movzx ecx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp cx, word [ebp - 0xc]
ja 0x48ab4e
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
jne 0x48a6a3
mov eax, dword [ebp - 0x14]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x48ab25
jmp 0x48a6a3
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x48a6a3
cmp esi, dword [ebx + 0x7c]
jae 0x48a752
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja 0x48a6a3
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je 0x48a6a3
mov eax, dword [ebp - 0x14]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x48ab6e
jmp 0x48a6a3
mov eax, dword [ebp + 0x18]
inc eax
cmp word [edi], 0x74
push eax
push dword [ebp + 0x14]
push ebx
push edx
push ecx
mov ecx, dword [ebp - 8]
jne 0x48abdd
lea edx, [edi + 4]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov edi, dword [ebp - 0xc]
jmp 0x40a5eb
mov edx, dword [ebp - 0xc]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
add edi, 4
jmp 0x40a5eb
mov eax, dword [ebx + 0x90]
mov ecx, dword [ebp + 0xc]
cmp eax, ecx
cmovg ecx, eax
movzx eax, word [edi + 6]
mov dword [ebp + 0xc], ecx
lea edi, [edi + eax*2]
add edi, 4
cmp word [edi], 0x71
jne 0x48ac2c
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x48ac19
jmp 0x48ac2c
mov ecx, dword [ebp + 0xc]
cmp esi, 0x86
je 0x48ada7
add edi, 4
jmp 0x40a5eb
mov edx, esi
mov esi, dword [ebp - 8]
mov ecx, esi
call fcn.0040a520
add esp, 0x14
cmp eax, 0xfffffc1b
jne 0x48ac67
mov ecx, dword [ebp - 0x18]
cmp dword [ebx + 0xb8], ecx
jne 0x40a6c7
jmp 0x48ac72
test eax, eax
jne 0x40a6c7
mov ecx, dword [ebp - 0x18]
cmp word [ecx], 0x7b
je 0x48ae5a
add edi, 4
jmp 0x40a5eb
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x48ac9c
sub esi, 2
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48acc7
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x48ace9
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cc8], 2
jne 0x48ad0d
sub esi, 2
jmp 0x489ca5
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 8], esi
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x2c]
jne 0x489c79
jmp 0x40a5ee
mov dword [ebx + 0x9c], 2
jmp 0x40aea4
movzx ecx, word [edi + 2]
lea eax, [edi + ecx*2]
cmp dword [ebx + 0x80], eax
jae 0x48cbce
cmp word [edi], 0x71
je 0x40aef3
cmp word [eax], 0x71
jne 0x48cbce
jmp 0x40aef3
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [edi]
push dword [ebp + 0x14]
movzx ecx, byte [eax + 0x49f530]
movzx eax, word [edi + 2]
push ebx
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [edi + ecx*2]
mov ecx, dword [ebp - 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
lea eax, [edi + 4]
mov dword [ebx + 0x80], eax
mov eax, 0xfffffc1f
jmp 0x40a6c7
mov dword [ebx + 0x9c], 2
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
lea edx, [edi + 4]
push ebx
push ecx
push dword [ebp + 8]
mov ecx, dword [ebp - 8]
call fcn.0040a520
add esp, 0x14
jmp 0x40a6c7
mov eax, dword [ebp - 0x58]
mov dword [ebx + 0xa8], eax
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je case.0x40a5a0.151
push eax
call dword [0x4bc80c]
add esp, 4
jmp case.0x40a5a0.151
mov ecx, dword [ebp - 0x50]
lea edx, [ebp - 0x14c]
cmp ecx, edx
je 0x40a6c7
push ecx
call dword [0x4bc80c]
mov eax, dword [ebp - 0xc]
add esp, 4
jmp 0x40a6c7
mov eax, 0xfffffffa
jmp 0x40a6c7
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov dword [ebx + 0xb8], edi
mov eax, 0xfffffc1b
jmp 0x40a6c7
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
lea edx, [edi + 4]
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov eax, dword [ebp - 0x18]
mov dword [ebx + 0xb8], eax
mov eax, 0xfffffc1b
jmp 0x40a6c7
mov dword [ebx + 0x84], eax
mov dword [ebx + 0x90], edx
mov eax, 0xfffffc1a
jmp 0x40a6c7
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
push ebx
push edx
push dword [ebp + 8]
lea edx, [edi + 4]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov dword [ebx + 0xb8], esi
mov eax, 0xfffffc1b
jmp 0x40a6c7
cmp ecx, dword [ebx + 0x88]
jbe case.0x40a5a0.151
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle case.0x40a5a0.151
mov eax, 0xfffffff4
jmp 0x40a6c7
mov eax, 0xfffffff2
jmp 0x40a6c7
cmp eax, 0xfffffffe
jne 0x48af16
mov esi, dword [ebx + 0x7c]
cmp dword [ebx + 0x8c], 0
je case.0x40a5a0.151
cmp esi, dword [ebx + 0x7c]
jb case.0x40a5a0.151
cmp esi, dword [ebx + 0x88]
jmp 0x48aee0
mov dword [ebp - 0xc], eax
cmp ecx, edx
jl 0x48af40
jmp 0x48afa6
mov eax, dword [ebp - 8]
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x34]
push ebx
push esi
mov edx, eax
call fcn.00472263
add esp, 0xc
test eax, eax
js 0x48af6d
mov ecx, dword [ebp - 8]
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 8], ecx
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x18]
jl 0x48af3d
jmp 0x48af9d
cmp eax, 0xfffffffe
jne 0x48af9a
cmp dword [ebx + 0x8c], 0
je 0x48af9a
mov eax, dword [ebx + 0x7c]
cmp eax, dword [ebx + 0x88]
jbe 0x48af9a
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0xc]
jb case.0x40a5a0.151
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov edx, dword [ebp - 8]
mov eax, esi
neg eax
lea edx, [edx + eax*2]
mov dword [ebp - 8], edx
cmp edx, dword [ebp - 0xc]
jae 0x48afa6
xor eax, eax
jmp 0x40a6c7
cmp ecx, 0xfffffffe
jne 0x48afed
mov eax, dword [ebx + 0x7c]
jmp 0x48aff0
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x8c], 0
je case.0x40a5a0.151
cmp eax, dword [ebx + 0x7c]
jb case.0x40a5a0.151
cmp eax, dword [ebx + 0x88]
jmp 0x48aee0
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
test ecx, ecx
mov ecx, dword [ebp - 8]
push ebx
push dword [ebp + 0xc]
mov edx, edi
push dword [ebp + 8]
je 0x48b112
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov edx, dword [ebp - 0x34]
cmp edx, dword [ebp - 0x18]
jge case.0x40a5a0.151
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebx + 0x7c]
jae 0x48b0fa
movzx eax, word [ecx]
mov dword [ebp - 0x10], eax
add ecx, 2
and eax, 0xfc00
mov dword [ebp - 8], ecx
cmp eax, 0xd800
jne 0x48b096
movzx eax, word [ecx]
mov ebx, dword [ebp - 0x10]
and ebx, 0x3ff
and eax, 0x3ff
shl ebx, 0xa
or eax, ebx
mov ebx, dword [ebp + 0x10]
add eax, 0x10000
add ecx, 2
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], ecx
jmp 0x48b099
mov eax, dword [ebp - 0x10]
cmp eax, 0xff
jbe 0x48b0ab
cmp esi, 0x6a
je case.0x40a5a0.151
jmp 0x48b0d0
shr dword [ebp - 0x10], 3
mov edx, dword [ebp - 0x10]
mov ecx, eax
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x1c]
test byte [edx + ecx], al
mov edx, dword [ebp - 0x34]
je case.0x40a5a0.151
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc edx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x34], edx
push dword [ebp + 8]
mov edx, edi
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48b03d
jmp 0x40a6c7
cmp dword [ebx + 0x8c], 0
je case.0x40a5a0.151
cmp ecx, dword [ebx + 0x88]
jmp 0x48aee0
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov edx, dword [ebp - 0x34]
cmp edx, dword [ebp - 0x18]
jge case.0x40a5a0.151
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40ade4
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 0x28], ecx
mov dword [ebp - 8], eax
cmp ecx, 0xff
jbe 0x48b159
cmp esi, 0x6a
je case.0x40a5a0.151
jmp 0x48b179
shr dword [ebp - 0x28], 3
mov ebx, dword [ebp - 0x28]
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x1c]
test byte [ebx + ecx], al
mov ebx, dword [ebp + 0x10]
je case.0x40a5a0.151
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
inc edx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x34], edx
push dword [ebp + 8]
mov edx, edi
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48b122
jmp 0x40a6c7
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], 2
jmp 0x40a8ef
cmp esi, 0x6a
je 0x40a91b
jmp 0x40af1b
cmp dword [ebx + 0x8c], 0
je 0x40a91b
cmp eax, dword [ebx + 0x88]
jbe 0x40a91b
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
jmp 0x40a91b
mov eax, esi
sub esi, 2
cmp eax, dword [ebp - 0x40]
je case.0x40a5a0.151
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x48b231
sub esi, 2
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48b20b
jmp 0x40a6c7
mov edx, dword [ebp - 0x34]
cmp edx, dword [ebp - 0x18]
jge 0x48b2d2
cmp eax, dword [ebx + 0x7c]
jae 0x48b2a4
movzx ecx, word [eax]
mov dword [ebp - 0x28], ecx
cmp ecx, 0xff
jbe 0x48b277
cmp esi, 0x6a
jne 0x48b296
jmp 0x48b2c9
shr dword [ebp - 0x28], 3
mov ebx, dword [ebp - 0x28]
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x1c]
test byte [ebx + ecx], al
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp - 8]
je 0x48b2c9
add eax, 2
inc edx
mov dword [ebp - 8], eax
cmp edx, dword [ebp - 0x18]
jl 0x48b25d
jmp 0x48b2c9
cmp dword [ebx + 0x8c], 0
je 0x48b2c9
cmp eax, dword [ebx + 0x88]
jbe 0x48b2c9
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
cmp eax, dword [ebp - 0x40]
jb case.0x40a5a0.151
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
sub esi, 2
cmp esi, dword [ebp - 0x40]
jae 0x48b2d5
jmp 0x40a6c7
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.0047266a
add esp, 4
test eax, eax
je case.0x40a5a0.151
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48683c
jmp 0x40a6c7
cmp dword [ebx + 0x8c], 0
je case.0x40a5a0.151
cmp esi, dword [ebx + 0x88]
jmp 0x48aee0
mov dword [ebp - 0x40], esi
cmp edx, eax
jge 0x48b408
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48b3e3
movzx edx, word [esi]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x30], edx
test ecx, ecx
je 0x48b3ba
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48b3b5
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or eax, edx
add eax, 0x10000
mov dword [ebp - 0xc], 2
jmp 0x48b3bd
mov eax, dword [ebp - 0x30]
jmp 0x48b3bd
movzx eax, word [esi]
mov edx, dword [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.0047266a
add esp, 4
test eax, eax
je 0x48b408
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
inc edx
lea esi, [esi + eax*2]
mov dword [ebp - 0x18], edx
cmp edx, dword [ebp - 0x10]
jl 0x48b36c
jmp 0x48b408
cmp dword [ebx + 0x8c], 0
je 0x48b408
cmp esi, dword [ebx + 0x88]
jbe 0x48b408
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov eax, esi
sub esi, 2
cmp eax, dword [ebp - 0x40]
je case.0x40a5a0.151
cmp dword [ebp - 0x20], 0
je 0x48b457
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x48b457
sub esi, 2
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48b42b
jmp 0x40a6c7
cmp dword [ebx + 0x8c], 0
je case.0x40a5a0.151
cmp edx, dword [ebx + 0x7c]
jb case.0x40a5a0.151
cmp edx, dword [ebx + 0x88]
jmp 0x48aee0
cmp dword [ebx + 0x8c], edx
je case.0x40a5a0.151
cmp ecx, dword [ebx + 0x88]
jmp 0x48aee0
mov ecx, dword [ebp - 8]
cmp dword [ebx + 0x8c], 0
je case.0x40a5a0.151
cmp ecx, dword [ebx + 0x7c]
jb case.0x40a5a0.151
jmp 0x48aeda
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov ecx, dword [ebp - 0x10]
lea edx, [ecx + ecx]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x34]
cmp dword [ebp - 0x1c], eax
jge case.0x40a5a0.151
mov eax, dword [ebx + 0x7c]
sub eax, edx
cmp esi, eax
ja 0x48b52e
lea eax, [ecx + ecx]
push eax
push dword [ebp - 0x28]
push esi
call fcn.00420c73
add esp, 0xc
test eax, eax
jne 0x48b52e
add esi, dword [ebp - 0xc]
jmp 0x48b568
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jle 0x48af16
mov eax, dword [ebx + 0x7c]
lea edx, [ecx + ecx]
sub eax, edx
mov dword [ebp - 0x30], edx
cmp esi, eax
ja 0x48af16
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x6c]
push eax
push esi
call fcn.00420c73
add esp, 0xc
test eax, eax
jne 0x48af16
add esi, dword [ebp - 0x30]
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x1c]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
mov ecx, dword [ebp - 0x10]
add esp, 0x14
lea edx, [ecx + ecx]
test eax, eax
je 0x48b500
jmp 0x40a6c7
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x34]
jge case.0x40a5a0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx ecx, word [esi]
cmp dword [ebp - 0x18], ecx
je 0x48b5e2
cmp dword [ebp - 0x14], ecx
jne case.0x40a5a0.151
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
add esi, 2
push ebx
push dword [ebp + 0xc]
mov edx, edi
push dword [ebp + 8]
mov ecx, esi
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48b5bc
jmp 0x40a6c7
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x34]
jge case.0x40a5a0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx eax, word [esi]
add esi, 2
cmp dword [ebp - 0x18], eax
jne case.0x40a5a0.151
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x1c], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48b630
jmp 0x40a6c7
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
test ecx, ecx
push ebx
push dword [ebp + 0xc]
mov edx, edi
push dword [ebp + 8]
mov ecx, esi
je 0x48b726
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x34]
jge case.0x40a5a0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx edx, word [esi]
mov eax, edx
and eax, 0xfc00
add esi, 2
cmp eax, 0xd800
jne 0x48b6ec
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add esi, 2
cmp dword [ebp - 0x14], edx
je case.0x40a5a0.151
cmp dword [ebp - 0x10], edx
je case.0x40a5a0.151
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x1c], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48b6a7
jmp 0x40a6c7
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x34]
jge case.0x40a5a0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx ecx, word [esi]
cmp dword [ebp - 0x14], ecx
je case.0x40a5a0.151
cmp dword [ebp - 0x10], ecx
je case.0x40a5a0.151
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
add esi, 2
push ebx
push dword [ebp + 0xc]
mov edx, edi
push dword [ebp + 8]
mov ecx, esi
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48b736
jmp 0x40a6c7
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
test ecx, ecx
push ebx
push dword [ebp + 0xc]
mov edx, edi
push dword [ebp + 8]
mov ecx, esi
je 0x48b82c
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x34]
jge case.0x40a5a0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx edx, word [esi]
mov eax, edx
and eax, 0xfc00
add esi, 2
cmp eax, 0xd800
jne 0x48b7fb
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add esi, 2
cmp dword [ebp - 0x14], edx
je case.0x40a5a0.151
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x1c], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48b7b6
jmp 0x40a6c7
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x34]
jge case.0x40a5a0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx eax, word [esi]
add esi, 2
cmp dword [ebp - 0x14], eax
je case.0x40a5a0.151
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x1c], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48b83c
jmp 0x40a6c7
cmp eax, 0xa
ja case.default.0x486252
jmp dword [eax*4 + 0x48d02c]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge case.0x40a5a0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48b8ed
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x48b8ed
add esi, 2
cmp dword [ebp - 0x3c], 0
jne case.0x40a5a0.151
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48b8bb
jmp 0x40a6c7
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge case.0x40a5a0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx edx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], edx
je 0x48b993
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48b993
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
mov dword [ebp - 0xc], edx
add esi, 2
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and edx, 0x8000007f
jns 0x48b9b8
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp eax, 9
je 0x48b9dd
cmp eax, 5
je 0x48b9dd
cmp eax, 8
je 0x48b9dd
xor eax, eax
jmp 0x48b9e2
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a5a0.151
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x14], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48b942
jmp 0x40a6c7
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x40a5a0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48ba85
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48ba85
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x48baa7
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x40]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cc8], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a5a0.151
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x14]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48ba3a
jmp 0x40a6c7
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x40a5a0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48bb6a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48bb6a
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x48bb8c
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a5a0.151
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x14]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48bb1f
jmp 0x40a6c7
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x40a5a0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48bc48
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48bc48
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x48bc6a
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a5a0.151
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x14]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48bbfd
jmp 0x40a6c7
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge case.0x40a5a0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx edx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], edx
je 0x48bd2c
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48bd2c
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
mov dword [ebp - 0xc], edx
add esi, 2
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and edx, 0x8000007f
jns 0x48bd51
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
mov eax, dword [eax*4 + 0x4b6cc8]
cmp eax, 1
je 0x48bd78
cmp eax, 3
je 0x48bd78
xor eax, eax
jmp 0x48bd7d
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a5a0.151
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x14], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48bcdb
jmp 0x40a6c7
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x40a5a0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], ecx
je 0x48be26
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48be26
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
mov dword [ebp - 0xc], ecx
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4ad470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x48be4c
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cc8], 6
je 0x48be80
cmp edx, 9
je 0x48be80
cmp edx, 0xa
je 0x48be80
cmp edx, 0xc
je 0x48be80
cmp edx, 0xd
je 0x48be80
xor eax, eax
jmp 0x48be85
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a5a0.151
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x14]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48bdd5
jmp 0x40a6c7
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x40a5a0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], ecx
je 0x48bf2d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48bf2d
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
mov dword [ebp - 0xc], ecx
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4ad470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x48bf53
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cc8], 6
je 0x48bf8c
cmp edx, 9
je 0x48bf8c
cmp edx, 0xa
je 0x48bf8c
cmp edx, 0xb
je 0x48bf8c
cmp edx, 0xc
je 0x48bf8c
cmp edx, 0xd
je 0x48bf8c
xor eax, eax
jmp 0x48bf91
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a5a0.151
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x14]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48bedc
jmp 0x40a6c7
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x40a5a0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], ecx
je 0x48c039
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48c039
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
mov dword [ebp - 0xc], ecx
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4ad470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x48c05f
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
mov eax, dword [eax*4 + 0x4b6cc8]
cmp eax, 1
je 0x48c08b
cmp eax, 3
je 0x48c08b
cmp edx, 0x5f
je 0x48c08b
xor eax, eax
jmp 0x48c090
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a5a0.151
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x14]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48bfe8
jmp 0x40a6c7
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge case.0x40a5a0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48c135
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48c132
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x40]
mov ebx, dword [edx*4 + 0x4af670]
lea edx, [edx*4 + 0x4af670]
mov dword [ebp - 0xc], ebx
cmp ecx, ebx
mov ebx, dword [ebp + 0x10]
jb 0x48c167
mov ebx, dword [ebp + 0x10]
lea edx, [edx + 4]
cmp ecx, dword [ebp - 0xc]
je 0x48c19d
mov ebx, dword [edx]
mov dword [ebp - 0xc], ebx
cmp ecx, ebx
mov ebx, dword [ebp + 0x10]
jae 0x48c150
cmp dword [ebp - 0x3c], 0
je case.0x40a5a0.151
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48c0e7
jmp 0x40a6c7
cmp dword [ebp - 0x3c], 0
jne case.0x40a5a0.151
jmp 0x48c171
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge case.0x40a5a0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b349
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48c21a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48c217
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, dword [ebp - 0x14]
cmp ecx, 0x24
je 0x48c245
cmp ecx, 0x40
je 0x48c245
cmp ecx, 0x60
je 0x48c245
cmp ecx, 0xa0
jb 0x48c239
cmp ecx, 0xd7ff
jbe 0x48c245
cmp ecx, 0xe000
jae 0x48c245
xor ecx, ecx
jmp 0x48c24a
mov ecx, 1
cmp ecx, dword [ebp - 0x3c]
je case.0x40a5a0.151
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48c1cc
jmp 0x40a6c7
mov ecx, esi
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge case.0x40a5a0.151
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0x30], eax
cmp esi, eax
jae 0x48b349
movzx edx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], edx
je 0x48c2e7
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48c2e7
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
mov dword [ebp - 0xc], edx
add esi, 2
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and edx, 0x8000007f
jns 0x48c30c
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5d0]
movzx edx, byte [eax*8 + 0x4ac0d2]
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0xc], edx
cmp esi, eax
jae 0x48c3d3
mov ebx, dword [ebp - 0x20]
mov edi, edx
movzx ecx, word [esi]
mov dword [ebp - 0xc], 1
test ebx, ebx
je 0x48c36e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48c36e
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov dword [ebp - 0xc], 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x48c390
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx ecx, byte [eax*8 + 0x4ac0d2]
mov eax, 1
shl eax, cl
test dword [edi*4 + 0x49f454], eax
je 0x48c3c7
mov eax, dword [ebp - 0xc]
mov edi, ecx
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x30]
cmp esi, eax
jb 0x48c331
jmp 0x48c3ca
mov eax, dword [ebp - 0x30]
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x14]
cmp dword [ebx + 0x8c], 0
je 0x48c3fc
cmp esi, eax
jb 0x48c3fc
cmp esi, dword [ebx + 0x88]
jbe 0x48c3fc
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x14], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48c291
jmp 0x40a6c7
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x40ad87
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x40ad87
cmp dword [ebx + 0x1c], 1
je case.0x40a5a0.151
mov ax, word [esi + 2]
cmp ax, word [ebx + 0x36]
je case.0x40a5a0.151
jmp 0x40ad87
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add esi, 2
jmp 0x40ad9f
add eax, 0xfffffffa
cmp eax, 0xf
ja case.default.0x486252
jmp dword [eax*4 + 0x48d058]
cmp edx, 0xd
ja 0x48c4ce
je 0x48c4b3
cmp edx, 0xa
je case.0x48c48e.13
lea eax, [edx - 0xb]
cmp eax, 1
ja case.0x40a5a0.151
jmp 0x48c4e5
cmp esi, dword [ebx + 0x7c]
jae case.0x48c48e.13
cmp word [esi], 0xa
jne case.0x48c48e.13
add esi, 2
jmp case.0x48c48e.13
cmp edx, 0x85
je 0x48c4e5
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x40a5a0.151
cmp dword [ebx + 0x6c], 0
jne case.0x40a5a0.151
jmp case.0x48c48e.13
cmp edx, 0x180e
ja 0x48c538
je case.0x40a5a0.151
cmp edx, 0xa0
ja 0x48c527
je case.0x40a5a0.151
cmp edx, 9
je case.0x40a5a0.151
cmp edx, 0x20
je case.0x40a5a0.151
jmp case.0x48c48e.13
cmp edx, 0x1680
je case.0x40a5a0.151
jmp case.0x48c48e.13
cmp edx, 0x205f
ja 0x48c56f
je case.0x40a5a0.151
cmp edx, 0x2000
jb case.0x48c48e.13
cmp edx, 0x200a
jbe case.0x40a5a0.151
cmp edx, 0x202f
je case.0x40a5a0.151
jmp case.0x48c48e.13
cmp edx, 0x3000
je case.0x40a5a0.151
jmp case.0x48c48e.13
cmp edx, 0x180e
ja 0x48c5c4
je case.0x48c48e.13
cmp edx, 0xa0
ja 0x48c5b3
je case.0x48c48e.13
cmp edx, 9
je case.0x48c48e.13
cmp edx, 0x20
jne case.0x40a5a0.151
jmp case.0x48c48e.13
cmp edx, 0x1680
jne case.0x40a5a0.151
jmp case.0x48c48e.13
cmp edx, 0x205f
ja 0x48c5fb
je case.0x48c48e.13
cmp edx, 0x2000
jb case.0x40a5a0.151
cmp edx, 0x200a
jbe case.0x48c48e.13
cmp edx, 0x202f
jne case.0x40a5a0.151
jmp case.0x48c48e.13
cmp edx, 0x3000
jne case.0x40a5a0.151
jmp case.0x48c48e.13
cmp edx, 0x85
ja 0x48c631
je case.0x40a5a0.151
cmp edx, 0xa
jb case.0x48c48e.13
cmp edx, 0xd
jbe case.0x40a5a0.151
jmp case.0x48c48e.13
cmp edx, 0x2028
jb case.0x48c48e.13
cmp edx, 0x2029
jbe case.0x40a5a0.151
jmp case.0x48c48e.13
cmp edx, 0x85
ja 0x48c66d
je case.0x48c48e.13
lea eax, [edx - 0xa]
cmp eax, 3
ja case.0x40a5a0.151
jmp case.0x48c48e.13
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x40a5a0.151
jmp case.0x48c48e.13
cmp edx, 0x100
jae case.0x48c48e.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
jne case.0x40a5a0.151
jmp case.0x48c48e.13
cmp edx, 0x100
jae case.0x40a5a0.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
je case.0x40a5a0.151
jmp case.0x48c48e.13
cmp edx, 0x100
jae case.0x48c48e.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
jne case.0x40a5a0.151
jmp case.0x48c48e.13
cmp edx, 0x100
jae case.0x40a5a0.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
je case.0x40a5a0.151
jmp case.0x48c48e.13
cmp edx, 0x100
jae case.0x48c48e.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
jne case.0x40a5a0.151
jmp case.0x48c48e.13
cmp edx, 0x100
jae case.0x40a5a0.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
je case.0x40a5a0.151
jmp case.0x48c48e.13
cmp esi, dword [ebx + 0x7c]
jb case.0x48c48e.13
cmp dword [ebx + 0x18], 0
jne case.0x48c48e.13
cmp dword [ebx + 0x1c], 2
jne case.0x48c48e.13
movzx eax, word [ebx + 0x34]
cmp edx, eax
jne case.0x48c48e.13
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
jmp case.0x48c48e.13
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge case.0x40a5a0.151
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x48b349
mov eax, dword [ebp - 0x34]
cmp eax, 0xc
jne 0x48c7fc
cmp dword [ebx + 0x18], 0
je 0x48c7cd
push 0
lea eax, [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.00409126
add esp, 0xc
test eax, eax
jne case.0x40a5a0.151
mov ecx, dword [ebp - 0x14]
jmp 0x48c7f9
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x48c7f9
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x48c7f9
cmp dword [ebx + 0x1c], 1
je case.0x40a5a0.151
mov ax, word [esi + 2]
cmp ax, word [ebx + 0x36]
je case.0x40a5a0.151
mov eax, dword [ebp - 0x34]
movzx edx, word [esi]
add eax, 0xfffffffa
add esi, 2
cmp eax, 0xf
ja case.default.0x486252
jmp dword [eax*4 + 0x48d098]
cmp dword [ebx + 0x8c], 0
je case.0x48c80e.13
cmp esi, dword [ebx + 0x7c]
jb case.0x48c80e.13
cmp dword [ebx + 0x18], 0
jne case.0x48c80e.13
cmp dword [ebx + 0x1c], 2
jne case.0x48c80e.13
movzx eax, word [ebx + 0x34]
cmp edx, eax
jne case.0x48c80e.13
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x485764
jmp case.0x48c80e.13
cmp edx, 0xd
ja 0x48c89d
je 0x48c882
cmp edx, 0xa
je case.0x48c80e.13
lea eax, [edx - 0xb]
cmp eax, 1
ja case.0x40a5a0.151
jmp 0x48c8b4
cmp esi, dword [ebx + 0x7c]
jae case.0x48c80e.13
cmp word [esi], 0xa
jne case.0x48c80e.13
add esi, 2
jmp case.0x48c80e.13
cmp edx, 0x85
je 0x48c8b4
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x40a5a0.151
cmp dword [ebx + 0x6c], 0
jne case.0x40a5a0.151
jmp case.0x48c80e.13
cmp edx, 0x180e
ja 0x48c907
je case.0x40a5a0.151
cmp edx, 0xa0
ja 0x48c8f6
je case.0x40a5a0.151
cmp edx, 9
je case.0x40a5a0.151
cmp edx, 0x20
je case.0x40a5a0.151
jmp case.0x48c80e.13
cmp edx, 0x1680
je case.0x40a5a0.151
jmp case.0x48c80e.13
cmp edx, 0x205f
ja 0x48c93e
je case.0x40a5a0.151
cmp edx, 0x2000
jb case.0x48c80e.13
cmp edx, 0x200a
jbe case.0x40a5a0.151
cmp edx, 0x202f
je case.0x40a5a0.151
jmp case.0x48c80e.13
cmp edx, 0x3000
je case.0x40a5a0.151
jmp case.0x48c80e.13
cmp edx, 0x180e
ja 0x48c993
je case.0x48c80e.13
cmp edx, 0xa0
ja 0x48c982
je case.0x48c80e.13
cmp edx, 9
je case.0x48c80e.13
cmp edx, 0x20
jne case.0x40a5a0.151
jmp case.0x48c80e.13
cmp edx, 0x1680
jne case.0x40a5a0.151
jmp case.0x48c80e.13
cmp edx, 0x205f
ja 0x48c9ca
je case.0x48c80e.13
cmp edx, 0x2000
jb case.0x40a5a0.151
cmp edx, 0x200a
jbe case.0x48c80e.13
cmp edx, 0x202f
jne case.0x40a5a0.151
jmp case.0x48c80e.13
cmp edx, 0x3000
jne case.0x40a5a0.151
jmp case.0x48c80e.13
cmp edx, 0x85
ja 0x48ca00
je case.0x40a5a0.151
cmp edx, 0xa
jb case.0x48c80e.13
cmp edx, 0xd
jbe case.0x40a5a0.151
jmp case.0x48c80e.13
cmp edx, 0x2028
jb case.0x48c80e.13
cmp edx, 0x2029
jbe case.0x40a5a0.151
jmp case.0x48c80e.13
cmp edx, 0x85
ja 0x48ca3c
je case.0x48c80e.13
lea eax, [edx - 0xa]
cmp eax, 3
ja case.0x40a5a0.151
jmp case.0x48c80e.13
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x40a5a0.151
jmp case.0x48c80e.13
cmp edx, 0xff
ja case.0x48c80e.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
jne case.0x40a5a0.151
jmp case.0x48c80e.13
cmp edx, 0xff
ja case.0x40a5a0.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
je case.0x40a5a0.151
jmp case.0x48c80e.13
cmp edx, 0xff
ja case.0x48c80e.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
jne case.0x40a5a0.151
jmp case.0x48c80e.13
cmp edx, 0xff
ja case.0x40a5a0.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
je case.0x40a5a0.151
jmp case.0x48c80e.13
cmp edx, 0xff
ja case.0x48c80e.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
jne case.0x40a5a0.151
jmp case.0x48c80e.13
cmp edx, 0xff
ja case.0x40a5a0.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
je case.0x40a5a0.151
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x14], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.0040a520
add esp, 0x14
test eax, eax
je 0x48c787
jmp 0x40a6c7
mov dword [ebx + 0x9c], 2
jmp 0x40ac2f
movzx ecx, word [edi + 2]
lea eax, [edi + ecx*2]
cmp dword [ebx + 0x80], eax
jae 0x40ac78
cmp word [edi], 0x71
je 0x48cb46
cmp word [eax], 0x71
jne 0x40ac78
xor edx, edx
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0x94], eax
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0xb0], eax
cmp word [edi], 0x71
je 0x40ac23
mov esi, dword [ebp - 0xc]
mov eax, dword [ebx + 0xc]
mov edi, dword [ebp - 0x10]
lea ecx, [esi + esi]
mov dword [eax + ecx*4], edi
mov eax, dword [ebx + 0xc]
mov edi, dword [ebp - 0x40]
mov dword [eax + ecx*4 + 4], edi
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 0xc]
sub ecx, esi
mov esi, dword [ebp - 0x18]
mov dword [eax + ecx*4], esi
jmp 0x40ac78
cmp edx, 0xfffffc1b
jne 0x48cbce
movzx eax, word [edi]
cmp eax, 0x7b
je 0x48cbc3
cmp eax, 0x71
jne 0x48cbba
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x48cbac
movzx eax, word [edi + 2]
neg eax
lea edi, [edi + eax*2]
xor eax, eax
cmp dword [ebx + 0xb8], edi
cmove edx, eax
mov eax, edx
jmp 0x40a6c7
mov esi, dword [ebp - 8]
lea eax, [edi + 4]
mov dword [ebx + 0xb4], eax
mov dword [ebx + 0xb0], edx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [edi]
push dword [ebp + 0x14]
movzx ecx, byte [eax + 0x49f530]
movzx eax, word [edi + 2]
push ebx
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [edi + ecx*2]
mov ecx, esi
call fcn.0040a520
mov edi, eax
add esp, 0x14
cmp edi, 1
je 0x48cc25
cmp edi, 0xfffffc19
jne 0x48cc3e
cmp dword [ebx + 0xb0], 0
jne 0x48cc3e
mov ecx, dword [ebp - 0xc]
mov dword [ebx + 0xb0], ecx
mov eax, edi
jmp 0x40a6c7
cmp edi, 0xfffffc1f
jne 0x48cc5c
mov edx, dword [ebx + 0x80]
mov ecx, dword [ebp - 0xc]
call fcn.00472499
test eax, eax
je 0x48cd6d
mov eax, edi
jmp 0x40a6c7
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x49f530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
mov ecx, 0xfffffc1c
cmovne ecx, eax
mov eax, ecx
jmp 0x40a6c7
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x49f530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
test eax, eax
mov ecx, 0xfffffc1d
cmovne ecx, eax
mov eax, ecx
jmp 0x40a6c7
lea esi, [edi + 4]
mov dword [ebx + 0xb4], esi
mov dword [ebx + 0xb0], edx
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [edi]
push dword [ebp + 0x14]
movzx ecx, byte [eax + 0x49f530]
movzx eax, word [edi + 2]
push ebx
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [edi + ecx*2]
mov ecx, dword [ebp - 8]
call fcn.0040a520
mov ecx, eax
add esp, 0x14
cmp ecx, 1
je 0x48cd1e
cmp ecx, 0xfffffc19
jne 0x48cd2d
cmp dword [ebx + 0xb0], 0
jne 0x48cd2d
mov dword [ebx + 0xb0], esi
mov eax, 0xfffffc1d
test ecx, ecx
cmovne eax, ecx
jmp 0x40a6c7
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x49f530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
mov ecx, esi
call fcn.0040a520
add esp, 0x14
test eax, eax
jne 0x40a6c7
mov dword [ebx + 0x80], esi
mov eax, 0xfffffc1e
jmp 0x40a6c7
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x49f530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.0040a520
add esp, 0x14
jmp 0x48cdac
mov dword [ebx + 0xb0], esi
test eax, eax
jne 0x40a6c7
mov dword [ebx + 0x80], edi
mov eax, 0xfffffc20
jmp 0x40a6c7
lea esi, [edi + 4]
mov dword [ebx + 0xb4], esi
mov dword [ebx + 0xb0], edx
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [edi]
push dword [ebp + 0x14]
movzx ecx, byte [eax + 0x49f530]
movzx eax, word [edi + 2]
push ebx
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [edi + ecx*2]
mov ecx, dword [ebp - 8]
call fcn.0040a520
add esp, 0x14
cmp eax, 1
je 0x48ce0c
cmp eax, 0xfffffc19
jne 0x48cdac
cmp dword [ebx + 0xb0], 0
jne 0x48cdac
jmp 0x48cda6
cmp esi, 0x99
je 0x40a6a5
cmp dword [ebx + 0xa8], 0
jne 0x40a6a5
cmp dword [ebx + 0x60], 0
jne case.0x40a5a0.151
cmp dword [ebx + 0x64], 0
je 0x40a6a5
mov ecx, dword [ebx + 0x98]
mov eax, dword [ebx + 0x78]
lea eax, [eax + ecx*2]
cmp edi, eax
je case.0x40a5a0.151
jmp 0x40a6a5
mov eax, 0xfffffc19
jmp 0x40a6c7
mov eax, 0xfffffffb
jmp 0x40a6c7
mov eax, 0xffffffeb
jmp 0x40a6c7
inc dword [ebx]
mov eax, 0xfffffff8
jmp 0x40a6c7