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

Disassembly:
sub esp, 0x158
push ebx
push ebp
push esi
mov esi, edx
mov ebx, ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], ebx
push edi
test esi, esi
jne 0x491ece
cmp dword [esp + 0x17c], edx
jne 0x491eb3
push 1
push edx
push edx
push edx
push edx
lea ecx, [esp + 0x190]
call fcn.00491e70
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
lea eax, [esp + 0x17c]
sub eax, ebx
cdq
xor eax, edx
sub eax, edx
neg eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ebp, dword [esp + 0x174]
mov dword [esp + 0x44], 0
mov dword [esp + 0x34], 0
mov eax, dword [ebp]
cmp eax, dword [ebp + 4]
jae 0x49725b
mov dword [esp + 0x4c], 0xfc00
mov dword [esp + 0x50], 0xdc00
mov dword [esp + 0x54], connect
mov dword [esp + 0x48], 0xd800
inc eax
mov dword [ebp], eax
mov eax, dword [esp + 0x17c]
cmp eax, dword [ebp + 8]
jae 0x49970e
cmp dword [ebp + 0x9c], 2
jne 0x491f52
mov eax, dword [esp + 0x178]
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x6c]
mov dword [esp + 0x70], ebx
mov dword [esp + 0x178], eax
mov dword [ebp + 0x9c], 0
mov edi, dword [esp + 0x170]
jmp 0x491f72
mov edi, dword [esp + 0x170]
mov ebp, dword [esp + 0x174]
mov esi, dword [esp + 0x14]
movzx ecx, word [esi]
mov edx, ecx
mov dword [esp + 0x2c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], edx
cmp edx, 0x9b
ja case.0x491f9e.98
movzx eax, byte [edx + 0x499868]
jmp dword [eax*4 + 0x499720]
cmp dword [ebp + 0x70], 0
movzx ecx, byte [edx + 0x4bfdd8]
je 0x49731b
movzx eax, word [esi + 2]
add ecx, eax
lea esi, [esi + ecx*2]
mov dword [esp + 0x14], esi
jmp 0x491f72
mov edx, dword [esp + 0x174]
mov ebp, esi
mov edi, ebx
mov esi, dword [edx + 0xb0]
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
push eax
push dword [esp + 0x17c]
push edx
mov edx, dword [esp + 0x20]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
lea edx, [edx + 4]
call fcn.00491e70
mov edx, eax
add esp, 0x14
cmp edx, 1
je 0x4920e3
cmp edx, 0xfffffc20
jne 0x49204d
mov eax, dword [esp + 0x14]
movzx ecx, word [eax + 2]
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x174]
cmp dword [ecx + 0x80], eax
jae 0x49931a
mov ecx, dword [esp + 0x14]
cmp word [ecx], 0x71
je 0x492059
cmp word [eax], 0x71
jne 0x49931a
jmp 0x492059
test edx, edx
jne 0x49931a
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + 2]
mov edx, dword [esp + 0x174]
lea ecx, [ecx + eax*2]
mov dword [edx + 0xb0], esi
movzx eax, word [ecx]
mov dword [esp + 0x14], ecx
mov ecx, eax
cmp eax, 0x71
je 0x491fd6
mov esi, dword [esp + 0x14]
movzx eax, cx
cmp eax, 0x7c
je 0x492094
cmp eax, 0x71
jne case.default.0x4938d8
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
movzx eax, word [esi]
mov ecx, eax
cmp eax, 0x71
je 0x492094
mov eax, dword [edx + 0x90]
mov ebx, dword [edx + 0x84]
mov dword [esp + 0x170], eax
mov dword [esp + 0x1c], ebx
cmp ecx, 0x72
je 0x4920c9
cmp ebx, edi
jne 0x497003
add esi, 4
mov dword [esp + 0x14], esi
mov ebp, dword [esp + 0x174]
mov edi, dword [esp + 0x170]
jmp 0x491f72
mov edx, dword [esp + 0x174]
mov esi, dword [esp + 0x14]
mov eax, dword [edx + 0x80]
movzx ecx, word [esi]
mov dword [esp + 0x16c], eax
jmp 0x492083
xor ebp, ebp
mov dword [esp + 0x38], ebp
jmp 0x492c48
cmp word [esi + 4], 0x70
movzx ebp, word [esi + 2]
jne 0x492216
movzx edi, word [esi + 6]
mov esi, dword [0x4e9dc4]
add edi, edi
test esi, esi
je 0x492209
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x174]
mov dword [esp + 0xb8], 2
movzx eax, word [edi + eax + 8]
mov dword [esp + 0xbc], eax
mov eax, dword [edx + 0xc]
mov dword [esp + 0xc0], eax
mov ecx, dword [edx + 0x78]
mov dword [esp + 0xc4], ecx
mov eax, dword [edx + 0x7c]
sub eax, ecx
sar eax, 1
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x16c]
sub eax, ecx
sar eax, 1
mov dword [esp + 0xcc], eax
mov eax, ebx
sub eax, ecx
mov ecx, dword [esp + 0x14]
sar eax, 1
mov dword [esp + 0xd0], eax
movzx eax, word [edi + ecx + 0xa]
mov dword [esp + 0xe0], eax
movzx eax, word [edi + ecx + 0xe]
mov ecx, dword [esp + 0x174]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x170]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0xd4], eax
mov eax, dword [ecx + 0x94]
mov dword [esp + 0xd8], eax
mov eax, dword [ecx + 0xac]
mov dword [esp + 0xdc], eax
mov eax, dword [ecx + 0xb4]
mov dword [esp + 0xe8], eax
lea eax, [esp + 0xb8]
push eax
call esi
add esp, 4
test eax, eax
jg case.default.0x4938d8
js 0x497264
mov esi, dword [esp + 0x14]
add esi, 0xc
add esi, edi
mov dword [esp + 0x14], esi
movzx ecx, word [esi + 4]
lea edx, [esi + 4]
cmp ecx, 0x89
je 0x49243f
cmp ecx, 0x8a
je 0x49243f
cmp ecx, 0x87
je 0x4922b4
cmp ecx, 0x88
je 0x4922b4
cmp ecx, 0x8b
jne 0x492259
movzx eax, word [esi + 2]
lea eax, [esi + eax*2]
jmp 0x4925d8
mov esi, dword [esp + 0x174]
mov ecx, ebx
mov dword [esi + 0x9c], 1
mov eax, dword [esp + 0x17c]
inc eax
push eax
push 0
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
cmp eax, 1
je 0x497094
test eax, eax
je 0x4922a6
cmp eax, 0xfffffc20
jne 0x497264
mov eax, dword [esp + 0x14]
lea eax, [eax + ebp*2]
mov ebp, esi
jmp 0x4925df
movzx esi, word [esi + 6]
lea edx, [esi + esi]
cmp edx, dword [esp + 0x170]
jge 0x4922d8
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0xc]
cmp dword [eax + edx*4], 0
jge 0x492415
xor edi, edi
cmp ecx, 0x88
jne 0x49242b
mov ecx, dword [esp + 0x174]
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], edi
mov eax, dword [ecx + 0x28]
mov ebp, eax
mov edx, dword [ecx + 0x20]
xor ecx, ecx
mov dword [esp + 0x40], eax
test edx, edx
jle 0x492342
mov dword [esp + 0x2c], edi
xor ebx, ebx
mov edi, eax
nop
movzx eax, word [ebp]
cmp eax, esi
je 0x492336
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x24]
lea ebp, [edi + eax*2]
lea eax, [ebx + 1]
mov edi, ebp
mov dword [esp + 0x30], eax
mov ecx, eax
mov ebx, eax
cmp eax, edx
jl 0x492310
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x40]
cmp ecx, edx
jge 0x49242b
cmp ebp, eax
mov esi, ebp
mov eax, dword [esp + 0x174]
jbe 0x4923a9
mov eax, dword [eax + 0x24]
lea ecx, [ebp + 2]
neg eax
lea esi, [esi + eax*2]
lea edx, [esi + 2]
call fcn.0049b2c0
test eax, eax
jne 0x492408
movzx eax, word [esi]
lea ecx, [eax + eax]
cmp ecx, dword [esp + 0x170]
jge 0x492395
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x492415
mov eax, dword [esp + 0x174]
xor edx, edx
mov dword [esp + 0x2c], edx
cmp esi, dword [eax + 0x28]
ja 0x492357
xor edi, edi
mov esi, dword [esp + 0x30]
inc esi
cmp esi, dword [eax + 0x20]
jge 0x49242b
lea ecx, [ebp + 2]
mov dword [esp + 0x30], ecx
nop
mov eax, dword [eax + 0x24]
lea ebp, [ebp + eax*2]
lea edx, [ebp + 2]
call fcn.0049b2c0
test eax, eax
jne 0x49242b
movzx eax, word [ebp]
lea ecx, [eax + eax]
cmp ecx, dword [esp + 0x170]
jge 0x4923f3
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x492415
mov eax, dword [esp + 0x174]
inc esi
xor edi, edi
cmp esi, dword [eax + 0x20]
jge 0x49242b
mov ecx, dword [esp + 0x30]
jmp 0x4923c0
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x174]
jmp 0x4923a9
mov ecx, dword [esp + 0x14]
mov eax, 2
mov edi, 1
lea eax, [ecx + eax*2]
jmp 0x4925ce
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx eax, word [eax + 2]
lea eax, [ecx + eax*2]
jmp 0x4925ce
mov ebp, dword [esp + 0x174]
mov eax, dword [ebp + 0xa8]
test eax, eax
jne 0x49245c
movzx eax, word [esi + 2]
lea eax, [esi + eax*2]
jmp 0x4925df
movzx edx, word [esi + 6]
cmp edx, 0xffff
je 0x4925c1
cmp edx, dword [eax + 4]
je 0x4925c1
xor edi, edi
cmp ecx, 0x8a
jne 0x4925bb
mov ecx, dword [esp + 0x174]
mov eax, dword [ebp + 0x28]
mov ebp, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x30], eax
mov esi, dword [ecx + 0x20]
xor ecx, ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0x2c], edi
test esi, esi
jle 0x4924e6
mov dword [esp + 0x2c], edi
xor ebx, ebx
mov edi, eax
movzx eax, word [ebp]
cmp eax, edx
je 0x4924d6
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x24]
lea ebp, [edi + eax*2]
lea eax, [ebx + 1]
mov edi, ebp
mov dword [esp + 0x38], eax
mov ecx, eax
mov ebx, eax
cmp eax, esi
jl 0x4924b0
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x30], ebp
cmp ecx, esi
jge 0x4925b7
cmp ebp, eax
jbe 0x492547
mov ebx, dword [esp + 0x2c]
lea edi, [ebp + 2]
mov esi, ebp
mov ebp, dword [esp + 0x174]
mov eax, dword [ebp + 0x24]
mov ecx, edi
add eax, eax
sub esi, eax
lea edx, [esi + 2]
call fcn.0049b2c0
test eax, eax
jne 0x49252f
mov eax, dword [ebp + 0xa8]
xor ebx, ebx
movzx ecx, word [esi]
cmp ecx, dword [eax + 4]
sete bl
je 0x49252f
cmp esi, dword [ebp + 0x28]
ja 0x492502
mov ebp, dword [esp + 0x30]
test ebx, ebx
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x1c]
jne 0x4925a9
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x174]
mov esi, dword [esp + 0x38]
inc esi
cmp esi, dword [edx + 0x20]
jge 0x4925b7
mov ebx, dword [esp + 0x2c]
lea edi, [ebp + 2]
nop
mov eax, dword [edx + 0x24]
mov ecx, edi
lea edx, [eax*2]
add edx, ebp
mov ebp, edx
add edx, 2
call fcn.0049b2c0
test eax, eax
jne 0x49259d
mov edx, dword [esp + 0x174]
xor ebx, ebx
movzx ecx, word [ebp]
mov eax, dword [edx + 0xa8]
cmp ecx, dword [eax + 4]
sete bl
je 0x49259d
inc esi
cmp esi, dword [edx + 0x20]
jl 0x492560
mov dword [esp + 0x2c], ebx
test ebx, ebx
mov ebx, dword [esp + 0x1c]
je 0x4925b3
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
jmp 0x4925c6
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
movzx eax, word [esi + 2]
jmp 0x4925cb
mov edi, 1
mov eax, 2
lea eax, [esi + eax*2]
mov ecx, eax
test edi, edi
jne 0x4970d5
mov ebp, dword [esp + 0x174]
mov ecx, eax
cmp word [ecx], 0x71
je 0x4970d5
mov edi, dword [esp + 0x170]
lea esi, [eax + 4]
mov dword [esp + 0x14], esi
jmp 0x491f72
movzx edx, word [esi + 2]
mov dword [ebp + 0x94], edx
lea esi, [edx + edx]
cmp esi, dword [ebp + 0x14]
jl 0x492627
mov esi, dword [esp + 0x14]
add esi, 4
mov dword [ebp + 0x40], 1
mov dword [esp + 0x14], esi
jmp 0x491f72
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
sub eax, edx
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*8], eax
mov ecx, ebx
sub ecx, dword [ebp + 0x78]
mov eax, dword [ebp + 0xc]
sar ecx, 1
mov dword [eax + edx*8 + 4], ecx
cmp edi, esi
jg 0x492651
lea edi, [esi + 2]
mov dword [esp + 0x170], edi
mov esi, dword [esp + 0x14]
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x491f72
cmp dword [ebp + 0x9c], 1
mov esi, dword [ebp + 0xb0]
jne 0x492681
mov dword [ebp + 0x9c], 0
mov edi, 1
jmp 0x492683
xor edi, edi
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edx, dword [esp + 0x14]
inc eax
push eax
push 0
push ebp
push dword [esp + 0x17c]
lea edx, [edx + 4]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
cmp eax, 1
je 0x4926ee
cmp eax, 0xfffffc19
je 0x4926ee
test eax, eax
je 0x4926c9
cmp eax, 0xfffffc20
jne 0x497264
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + 2]
mov dword [ebp + 0xb0], esi
lea ecx, [ecx + eax*2]
movzx eax, word [ecx]
mov dword [esp + 0x14], ecx
mov ecx, eax
cmp eax, 0x71
je 0x492683
mov esi, dword [esp + 0x14]
jmp 0x492702
mov esi, dword [esp + 0x14]
mov eax, dword [ebp + 0x80]
mov dword [esp + 0x16c], eax
movzx eax, word [esi]
cmp ax, 0x72
je case.default.0x4938d8
test edi, edi
jne 0x497560
movzx eax, word [esi + 2]
cmp word [esi + eax*2], 0x71
lea esi, [esi + eax*2]
je 0x492714
mov edi, dword [ebp + 0x90]
add esi, 4
mov dword [esp + 0x14], esi
mov dword [esp + 0x170], edi
jmp 0x491f72
cmp dword [ebp + 0x9c], 1
mov esi, dword [ebp + 0xb0]
jne 0x49275b
mov dword [ebp + 0x9c], 0
mov edi, 1
jmp 0x49275d
xor edi, edi
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x17c]
lea edx, [ecx + 4]
inc eax
mov ecx, ebx
push eax
push 0
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
mov dword [ebp + 0xb0], esi
cmp eax, 1
je case.default.0x4938d8
cmp eax, 0xfffffc19
je case.default.0x4938d8
cmp eax, 0xfffffc1e
je 0x4927e0
cmp eax, 0xfffffc1d
je 0x4927e0
cmp eax, 0xfffffc1a
je 0x4927e0
test eax, eax
je 0x4927c6
cmp eax, 0xfffffc20
jne 0x497264
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x71
lea ecx, [ecx + eax*2]
mov dword [esp + 0x14], ecx
je 0x492761
mov esi, ecx
jmp 0x4927f2
mov esi, dword [esp + 0x14]
movzx eax, word [esi + 2]
cmp word [esi + eax*2], 0x71
lea esi, [esi + eax*2]
je 0x4927e4
test edi, edi
jne 0x497560
mov edi, dword [esp + 0x170]
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x491f72
movzx ecx, word [esi + 2]
test ecx, ecx
je 0x492842
mov edx, dword [ebp + 0x78]
add ebx, 0xfffffffe
dec ecx
mov dword [esp + 0x1c], ebx
cmp ebx, edx
jb case.default.0x4938d8
mov ax, word [ebx]
and ax, word [esp + 0x4c]
cmp ax, word [esp + 0x50]
jne 0x49283e
add ebx, 0xfffffffe
mov dword [esp + 0x1c], ebx
test ecx, ecx
jg 0x492818
cmp ebx, dword [ebp + 0x88]
jae 0x492850
mov dword [ebp + 0x88], ebx
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x491f72
movzx edi, word [esi + 2]
mov esi, dword [0x4e9dc4]
test esi, esi
je 0x492945
mov eax, dword [esp + 0x14]
mov dword [esp + 0x80], 2
movzx eax, word [eax + edi*2 + 6]
mov dword [esp + 0x84], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x88], eax
mov ecx, dword [ebp + 0x78]
mov dword [esp + 0x8c], ecx
mov eax, dword [ebp + 0x7c]
sub eax, ecx
sar eax, 1
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x16c]
sub eax, ecx
sar eax, 1
mov dword [esp + 0x94], eax
mov eax, ebx
sub eax, ecx
mov ecx, dword [esp + 0x14]
sar eax, 1
mov dword [esp + 0x98], eax
movzx eax, word [ecx + edi*2 + 8]
mov dword [esp + 0xa8], eax
movzx eax, word [ecx + edi*2 + 0xa]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x170]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x9c], eax
mov eax, dword [ebp + 0x94]
mov dword [esp + 0xa0], eax
mov eax, dword [ebp + 0xac]
mov dword [esp + 0xa4], eax
mov eax, dword [ebp + 0xb4]
mov dword [esp + 0xb0], eax
lea eax, [ecx + 4]
mov dword [esp + 0xb4], eax
lea eax, [esp + 0x80]
push eax
call esi
add esp, 4
test eax, eax
jg case.default.0x4938d8
js 0x497264
mov esi, dword [esp + 0x14]
lea esi, [esi + edi*2]
mov edi, dword [esp + 0x170]
add esi, 0xc
mov dword [esp + 0x14], esi
jmp 0x491f72
mov ecx, dword [ebp + 0x74]
movzx eax, word [esi + 2]
lea edi, [ecx + eax*2]
cmp edi, ecx
jne 0x492971
xor ecx, ecx
jmp 0x492975
movzx ecx, word [edi + 4]
mov edx, dword [ebp + 0xa8]
mov eax, edx
test edx, edx
je 0x492995
cmp ecx, dword [eax + 4]
jne 0x49298f
cmp ebx, dword [eax + 0x10]
je 0x4973b0
mov eax, dword [eax]
test eax, eax
jne 0x492981
lea eax, [esp + 0x58]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x68], ebx
add esi, 4
mov dword [esp + 0x58], edx
mov dword [ebp + 0xa8], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x14], esi
mov dword [esp + 0x64], eax
cmp eax, 0x1e
jg 0x4929cb
lea ecx, [esp + 0xf0]
mov dword [esp + 0x60], ecx
jmp 0x4929e9
shl eax, 2
push eax
call fcn.0049f23d
mov ecx, eax
add esp, 4
mov dword [esp + 0x60], ecx
test ecx, ecx
je 0x4973e5
mov eax, dword [esp + 0x64]
shl eax, 2
push eax
push dword [ebp + 0xc]
push ecx
call fcn.0049cd60
movzx ebp, word [edi]
add esp, 0xc
mov ecx, dword [esp + 0x174]
mov eax, 0x82
cmp bp, ax
jb 0x492a17
mov dword [ecx + 0x9c], 2
mov eax, dword [esp + 0x17c]
inc eax
push eax
push dword [esp + 0x17c]
movzx eax, word [edi]
push ecx
push dword [esp + 0x17c]
mov ecx, ebx
movzx eax, byte [eax + 0x4bfdd8]
push dword [esp + 0x17c]
lea edx, [edi + eax*2]
call fcn.00491e70
mov ecx, dword [esp + 0x78]
add esp, 0x14
shl ecx, 2
mov esi, eax
mov eax, dword [esp + 0x174]
push ecx
push dword [esp + 0x64]
push dword [eax + 0xc]
call fcn.0049cd60
mov ecx, dword [esp + 0x180]
add esp, 0xc
mov eax, dword [esp + 0x58]
mov dword [ecx + 0xa8], eax
cmp esi, 1
je 0x492af2
cmp esi, 0xfffffc19
je 0x492af2
test esi, esi
je 0x492aa3
cmp esi, 0xfffffc20
jne 0x4973c0
lea eax, [esp + 0x58]
mov dword [ecx + 0xa8], eax
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x492a03
mov eax, dword [esp + 0x58]
mov dword [ecx + 0xa8], eax
lea ecx, [esp + 0xf0]
mov eax, dword [esp + 0x60]
cmp eax, ecx
je case.default.0x4938d8
push eax
call fcn.0049f222
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0xf0]
cmp eax, ecx
je 0x492b0a
push eax
call fcn.0049f222
add esp, 4
mov ebp, dword [esp + 0x174]
mov edi, dword [esp + 0x170]
mov ebx, dword [ebp + 0x84]
mov eax, dword [ebp + 0x80]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x16c], eax
jmp 0x491f6e
movzx eax, word [esi + 2]
cmp word [esi + eax*2], 0x71
lea esi, [esi + eax*2]
je case.0x491f9e.113
mov dword [esp + 0x14], esi
jmp 0x491f72
mov eax, dword [esp + 0x17c]
add esi, 2
inc eax
mov edx, esi
push eax
push dword [esp + 0x17c]
mov ecx, ebx
push ebp
push edi
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov ecx, esi
nop dword [eax]
movzx eax, word [esi + 2]
cmp word [ecx + eax*2], 0x71
lea esi, [ecx + eax*2]
mov ecx, esi
je 0x492b80
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x491f72
add esi, 2
mov dword [esp + 0x14], esi
mov edx, esi
mov ecx, esi
nop word [eax + eax]
movzx eax, word [edx + 2]
cmp word [ecx + eax*2], 0x71
lea edx, [ecx + eax*2]
mov ecx, edx
je 0x492bb0
mov eax, dword [esp + 0x17c]
add edx, 4
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
push ebp
push edi
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x491f72
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
lea eax, [esi + 2]
mov ecx, eax
nop
movzx eax, word [eax + 2]
cmp word [ecx + eax*2], 0x71
lea eax, [ecx + eax*2]
mov ecx, eax
je 0x492c00
lea esi, [eax + 4]
mov dword [esp + 0x14], esi
jmp 0x491f72
movzx edx, word [esi + 2]
add esi, 2
mov dword [esp + 0x14], esi
mov ebp, 1
mov dword [esp + 0x20], edx
mov dword [esp + 0x38], ebp
cmp edx, 0x80
je 0x492c48
cmp edx, 0x85
jne 0x492e34
movzx edx, word [esi + 4]
mov ecx, dword [esp + 0x174]
mov dword [esp + 0x30], edx
lea eax, [edx + edx]
cmp eax, dword [ecx + 0x14]
jge 0x492e2e
mov edi, esi
lea eax, [edx*8]
sub edi, dword [ecx + 0x74]
xor ebp, ebp
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x40], eax
sar edi, 1
mov esi, dword [ecx + eax]
mov eax, dword [ecx + eax + 4]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0x24], esi
mov eax, dword [eax + 0x10]
sub eax, edx
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x174]
mov dword [esp + 0x2c], eax
mov esi, dword [ecx + 0x94]
nop dword [eax]
mov eax, dword [esp + 0x174]
mov edx, ebx
sub edx, dword [ecx + 0x78]
mov ecx, dword [ecx + 0x10]
sub ecx, dword [esp + 0x30]
mov eax, dword [eax + 0xc]
sar edx, 1
cmp dword [esp + 0x20], 0x82
mov dword [eax + ecx*4], edx
jb 0x492ce6
mov eax, dword [esp + 0x174]
mov dword [eax + 0x9c], 2
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x17c]
inc eax
push eax
movzx eax, word [ecx]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
movzx eax, byte [eax + 0x4bfdd8]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
lea edx, [ecx + eax*2]
mov ecx, ebx
call fcn.00491e70
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1b
jne 0x492d62
mov ecx, dword [esp + 0x174]
mov ebp, 1
mov eax, dword [ecx + 0x90]
mov ebx, dword [ecx + 0x84]
mov dword [esp + 0x170], eax
mov eax, dword [ecx + 0x74]
mov dword [esp + 0x1c], ebx
lea eax, [eax + edi*2]
mov dword [esp + 0x14], eax
jmp 0x492ca3
cmp ecx, 0xfffffc20
jne 0x492da1
mov edx, dword [esp + 0x14]
movzx eax, word [edx + 2]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x174]
cmp dword [edx + 0x80], eax
jae 0x492d94
mov edx, dword [esp + 0x14]
cmp word [edx], 0x71
je 0x492da9
cmp word [eax], 0x71
je 0x492da9
mov eax, ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
test ecx, ecx
jne 0x492d94
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x174]
mov dword [ecx + 0x94], esi
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x71
lea edx, [edx + eax*2]
mov dword [esp + 0x14], edx
je 0x492cb0
test ebp, ebp
jne 0x492e01
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x174]
mov edx, dword [esp + 0x24]
mov dword [ecx + eax], edx
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x28]
mov dword [ecx + eax + 4], edx
mov ecx, dword [esi + 0x10]
sub ecx, dword [esp + 0x30]
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x2c]
mov dword [eax + ecx*4], edx
cmp dword [esp + 0x38], 0
jne 0x492e10
test ebp, ebp
je case.default.0x4938d8
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x174]
add esi, 4
mov edi, dword [esp + 0x170]
mov dword [esp + 0x14], esi
jmp 0x491f72
mov edx, dword [esp + 0x20]
xor ebp, ebp
mov ecx, dword [esp + 0x174]
xor edi, edi
sub esi, dword [ecx + 0x74]
sar esi, 1
cmp edx, 0x82
jb 0x492e54
mov dword [ecx + 0x9c], 2
mov eax, dword [esp + 0x17c]
inc eax
push eax
push dword [esp + 0x17c]
push ecx
mov ecx, dword [esp + 0x20]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x4bfdd8]
lea edx, [ecx + eax*2]
mov ecx, ebx
call fcn.00491e70
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1b
jne 0x492ece
mov ecx, dword [esp + 0x174]
mov edi, 1
mov edx, dword [esp + 0x20]
mov eax, dword [ecx + 0x90]
mov ebx, dword [ecx + 0x84]
mov dword [esp + 0x170], eax
mov eax, dword [ecx + 0x74]
mov dword [esp + 0x1c], ebx
lea eax, [eax + esi*2]
mov dword [esp + 0x14], eax
jmp 0x492e42
cmp ecx, 0xfffffc20
jne 0x492f04
mov edx, dword [esp + 0x14]
movzx eax, word [edx + 2]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x174]
cmp dword [edx + 0x80], eax
jae 0x492d94
mov edx, dword [esp + 0x14]
cmp word [edx], 0x71
je 0x492f0c
cmp word [eax], 0x71
jmp 0x492f06
test ecx, ecx
jne 0x492d94
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x71
lea ecx, [ecx + eax*2]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x174]
je 0x492e42
test edi, edi
jne 0x492f3d
test ebp, ebp
je case.default.0x4938d8
mov esi, dword [esp + 0x14]
mov ebp, ecx
mov edi, dword [esp + 0x170]
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x491f72
movzx eax, word [esi + 2]
mov ebp, esi
add eax, eax
mov edx, 0x82
sub ebp, eax
movzx eax, word [ebp]
mov ecx, eax
cmp ax, dx
jae 0x492f7f
cmp ecx, 0x7b
je 0x492f7f
mov dword [esp + 0x30], 0
jmp 0x492f98
mov edx, dword [esp + 0x178]
lea eax, [edx + 4]
mov edx, dword [edx]
mov eax, dword [eax]
mov dword [esp + 0x178], edx
mov dword [esp + 0x30], eax
cmp ecx, 0x77
jb 0x492fa6
cmp ecx, 0x7a
jbe 0x497540
cmp ecx, 0x7c
je 0x497540
cmp ecx, 0x7f
je 0x492fd6
mov eax, 0x84
cmp cx, ax
je 0x492fd6
mov eax, 0x80
cmp cx, ax
je 0x492fd6
mov eax, 0x85
cmp cx, ax
jne 0x4930b0
mov edx, dword [esp + 0x174]
movzx edi, word [ebp + 4]
mov eax, dword [edx + 0xa8]
lea esi, [edi + edi]
test eax, eax
je 0x492ff7
cmp dword [eax + 4], edi
je 0x4973f5
mov dword [edx + 0x94], edi
cmp esi, dword [edx + 0x14]
jl 0x493044
mov edi, dword [esp + 0x170]
mov dword [edx + 0x40], 1
mov esi, dword [esp + 0x14]
movzx eax, word [esi]
cmp eax, 0x72
je 0x493026
cmp ebx, dword [esp + 0x30]
jne 0x497106
add esi, 4
cmp word [ebp], 0x7b
mov dword [esp + 0x14], esi
je 0x4974f6
mov ebp, dword [esp + 0x174]
jmp 0x491f72
mov ecx, dword [esp + 0x170]
cmp esi, ecx
jle 0x493076
mov eax, dword [edx + 0xc]
lea ecx, [eax + ecx*4]
lea edx, [eax + esi*4]
cmp ecx, edx
jae 0x49306f
mov eax, ecx
nop
mov dword [ecx], 0xffffffff
lea ecx, [eax + 4]
mov eax, ecx
cmp ecx, edx
jb 0x493060
mov edx, dword [esp + 0x174]
mov eax, dword [edx + 0x10]
mov ecx, dword [edx + 0xc]
sub eax, edi
mov edi, dword [esp + 0x170]
mov eax, dword [ecx + eax*4]
mov dword [ecx + esi*4], eax
mov ecx, ebx
sub ecx, dword [edx + 0x78]
mov eax, dword [edx + 0xc]
sar ecx, 1
mov dword [eax + esi*4 + 4], ecx
cmp edi, esi
jg 0x493010
lea edi, [esi + 2]
mov dword [esp + 0x170], edi
jmp 0x493010
mov edx, dword [esp + 0x174]
jmp 0x493014
cmp dword [ebp + 0x44], 0
je case.0x491f9e.1
cmp ebx, dword [ebp + 0x78]
je case.default.0x4938d8
cmp ebx, dword [ebp + 0x78]
jne case.default.0x4938d8
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x491f72
cmp dword [ebp + 0x44], 0
je 0x4930f4
cmp ebx, dword [ebp + 0x78]
je case.default.0x4938d8
mov ecx, dword [ebp + 0x78]
jmp 0x4930ff
mov ecx, dword [ebp + 0x78]
cmp ebx, ecx
je case.0x4938d8.10
cmp ebx, dword [ebp + 0x7c]
je case.default.0x4938d8
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x493145
cmp ebx, ecx
jbe 0x49312f
push 1
lea eax, [ebp + 0x1c]
push eax
push ecx
mov ecx, ebx
call fcn.0049b410
add esp, 0xc
test eax, eax
je 0x49312f
mov eax, 1
jmp 0x493131
xor eax, eax
test eax, eax
je case.default.0x4938d8
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x491f72
mov esi, dword [ebp + 0x1c]
lea edx, [esi + esi]
lea eax, [edx + ecx]
cmp ebx, eax
jb case.default.0x4938d8
mov ecx, ebx
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [ebp + 0x2c]
jne case.default.0x4938d8
cmp esi, 1
je 0x49317a
mov ax, word [ecx + 2]
cmp ax, word [ebp + 0x2e]
jne case.default.0x4938d8
mov esi, dword [esp + 0x14]
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x491f72
mov ecx, dword [ebp + 0x98]
mov eax, dword [ebp + 0x78]
lea eax, [eax + ecx*2]
cmp ebx, eax
jne case.default.0x4938d8
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x491f72
add esi, 2
mov dword [esp + 0x16c], ebx
mov dword [esp + 0x14], esi
jmp 0x491f72
mov ecx, dword [ebp + 0x7c]
cmp ebx, ecx
jae 0x493238
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x4931f8
push 1
lea eax, [ebp + 0x1c]
push eax
push ecx
mov ecx, ebx
call fcn.0049b350
add esp, 0xc
neg eax
sbb eax, eax
neg eax
je case.default.0x4938d8
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x491f72
mov edx, dword [ebp + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja case.default.0x4938d8
mov ax, word [ebx]
cmp ax, word [ebp + 0x2c]
jne case.default.0x4938d8
cmp edx, 1
je case.0x4938d8.10
mov ax, word [ebx + 2]
cmp ax, word [ebp + 0x2e]
jne case.default.0x4938d8
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x491f72
cmp dword [ebp + 0x48], 0
jne case.default.0x4938d8
mov eax, dword [ebp + 0x8c]
test eax, eax
je case.0x4938d8.10
cmp ebx, dword [ebp + 0x88]
jbe case.0x4938d8.10
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4991b3
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x491f72
cmp dword [ebp + 0x48], 0
jne case.default.0x4938d8
cmp dword [ebp + 0x58], 0
je case.0x491f9e.23
cmp ebx, dword [ebp + 0x7c]
jb case.default.0x4938d8
mov eax, dword [ebp + 0x8c]
test eax, eax
je case.0x4938d8.10
cmp ebx, dword [ebp + 0x88]
jbe case.0x4938d8.10
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4991b3
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x491f72
mov ecx, dword [ebp + 0x7c]
cmp ebx, ecx
jae 0x49333c
mov edx, dword [ebp + 0x18]
lea esi, [ebp + 0x1c]
test edx, edx
je 0x4932f8
push 1
push esi
push ecx
mov ecx, ebx
call fcn.0049b350
add esp, 0xc
neg eax
sbb eax, eax
neg eax
je case.default.0x4938d8
jmp 0x493327
mov edx, dword [esi]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja case.default.0x4938d8
mov ax, word [ebx]
cmp ax, word [ebp + 0x2c]
jne case.default.0x4938d8
cmp edx, 1
je 0x493327
mov ax, word [ebx + 2]
cmp ax, word [ebp + 0x2e]
jne case.default.0x4938d8
mov ecx, dword [esi]
mov eax, dword [ebp + 0x7c]
add ecx, ecx
sub eax, ecx
cmp ebx, eax
jne case.default.0x4938d8
mov esi, dword [esp + 0x14]
mov eax, dword [ebp + 0x8c]
test eax, eax
je case.0x4938d8.10
cmp ebx, dword [ebp + 0x88]
jbe case.0x4938d8.10
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4991b3
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x491f72
cmp ebx, dword [ebp + 0x78]
jne 0x4933d7
lea esi, [ebp + 0x88]
xor edi, edi
mov ecx, 0x54
mov eax, ebp
lea edx, [ecx + eax]
cmp ebx, dword [ebp + 0x7c]
jb 0x49349a
mov eax, dword [ebp + 0x8c]
test eax, eax
je 0x4933b4
cmp ebx, dword [esi]
jbe 0x4933b4
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4991b3
xor ecx, ecx
lea edx, [ecx + 1]
mov esi, dword [esp + 0x14]
movzx eax, word [esi]
add esi, 2
mov dword [esp + 0x14], esi
cmp eax, 5
jne 0x493549
xor edi, edx
jmp 0x49354b
mov ax, word [ebx - 2]
lea edx, [ebx - 2]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4933f3
add edx, 0xfffffffe
cmp edx, dword [ebp + 0x88]
lea esi, [ebp + 0x88]
jae 0x493403
mov dword [esi], edx
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49342e
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
cmp dword [ebp + 0x54], 0
je 0x493477
cmp ecx, 0x5f
je 0x493490
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
mov eax, dword [eax*4 + 0x4bfd60]
cmp eax, 1
je 0x493490
cmp eax, 3
je 0x493490
jmp 0x493381
cmp ecx, 0x100
jae 0x493381
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
je 0x493381
mov edi, 1
jmp 0x493383
movzx ecx, word [ebx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4934c5
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
cmp dword [edx], 0
je 0x493524
cmp ecx, 0x5f
jne 0x4934df
mov ecx, 1
xor edx, edx
jmp 0x4933b9
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
mov eax, dword [eax*4 + 0x4bfd60]
cmp eax, 1
je 0x493518
cmp eax, 3
jne 0x4933b4
mov ecx, 1
xor edx, edx
jmp 0x4933b9
cmp ecx, 0x100
jae 0x4933b4
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
je 0x4933b4
mov ecx, 1
xor edx, edx
jmp 0x4933b9
xor edi, ecx
test edi, edi
jne case.default.0x4938d8
mov edi, dword [esp + 0x170]
jmp 0x491f72
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x7c]
test edx, edx
je 0x493595
cmp ebx, ecx
jae 0x493589
push 1
lea eax, [ebp + 0x1c]
push eax
push ecx
mov ecx, ebx
call fcn.0049b350
add esp, 0xc
test eax, eax
je 0x493589
mov eax, 1
jmp 0x49358b
xor eax, eax
test eax, eax
jne case.default.0x4938d8
jmp case.0x491f9e.13
mov edx, dword [ebp + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja case.0x491f9e.13
mov ax, word [ebx]
cmp ax, word [ebp + 0x2c]
jne case.0x491f9e.13
cmp edx, 1
je case.default.0x4938d8
mov ax, word [ebx + 2]
cmp ax, word [ebp + 0x2e]
je case.default.0x4938d8
mov eax, dword [ebp + 0x7c]
cmp ebx, eax
jae 0x497570
add ebx, 2
mov dword [esp + 0x1c], ebx
cmp ebx, eax
jae 0x4935f3
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4935f3
add ebx, 2
mov dword [esp + 0x1c], ebx
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x491f72
cmp ebx, dword [ebp + 0x7c]
jae 0x497570
add ebx, 2
add esi, 2
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], esi
jmp 0x491f72
cmp ebx, dword [ebp + 0x7c]
jae 0x497570
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x1c], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49365c
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
mov dword [esp + 0x1c], ebx
cmp ecx, 0x100
jae case.0x4938d8.10
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 4
jne case.default.0x4938d8
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x491f72
cmp ebx, dword [ebp + 0x7c]
jae 0x497570
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x1c], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4936c2
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
mov dword [esp + 0x1c], ebx
cmp ecx, 0xff
ja case.default.0x4938d8
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 4
je case.default.0x4938d8
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x491f72
cmp ebx, dword [ebp + 0x7c]
jae 0x497570
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x1c], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x493728
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
mov dword [esp + 0x1c], ebx
cmp ecx, 0x100
jae case.0x4938d8.10
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 1
jne case.default.0x4938d8
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x491f72
cmp ebx, dword [ebp + 0x7c]
jae 0x497570
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x1c], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49378e
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
mov dword [esp + 0x1c], ebx
cmp ecx, 0xff
ja case.default.0x4938d8
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 1
je case.default.0x4938d8
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x491f72
cmp ebx, dword [ebp + 0x7c]
jae 0x497570
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x1c], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4937f4
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
mov dword [esp + 0x1c], ebx
cmp ecx, 0x100
jae case.0x4938d8.10
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
jne case.default.0x4938d8
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x491f72
cmp ebx, dword [ebp + 0x7c]
jae 0x497570
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x1c], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49385a
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
mov dword [esp + 0x1c], ebx
cmp ecx, 0xff
ja case.default.0x4938d8
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
je case.default.0x4938d8
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x491f72
mov edx, dword [ebp + 0x7c]
cmp ebx, edx
jae 0x497570
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x1c], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4938c2
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
mov dword [esp + 0x1c], ebx
cmp ecx, 0x85
ja 0x493904
je case.0x4938d8.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4938d8
jmp dword [ecx*4 + 0x499904]
cmp ebx, edx
jae case.0x4938d8.10
cmp word [ebx], 0xa
jne case.0x4938d8.10
add ebx, 2
add esi, 2
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], esi
jmp 0x491f72
sub ecx, 0x2028
je case.0x4938d8.11
sub ecx, 1
jne case.default.0x4938d8
cmp dword [ebp + 0x68], 0
jne case.default.0x4938d8
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x491f72
cmp ebx, dword [ebp + 0x7c]
jae 0x497570
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x1c], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49396c
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
mov dword [esp + 0x1c], ebx
cmp ecx, 0x2000
ja 0x4939ca
je case.default.0x4938d8
cmp ecx, 0xa0
ja 0x4939a6
je case.default.0x4938d8
cmp ecx, 9
je case.default.0x4938d8
cmp ecx, 0x20
je case.default.0x4938d8
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x491f72
cmp ecx, 0x1680
je case.default.0x4938d8
cmp ecx, 0x180e
je case.default.0x4938d8
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x491f72
cmp ecx, 0x3000
ja case.0x4939f2.8203
je case.default.0x4938d8
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4939f2.8203
movzx eax, byte [ecx + 0x49991c]
jmp dword [eax*4 + 0x499914]
cmp ebx, dword [ebp + 0x7c]
jae 0x497570
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x1c], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x493a3a
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
mov dword [esp + 0x1c], ebx
cmp ecx, 0x2000
ja 0x493a7e
je case.0x4939f2.8203
cmp ecx, 0xa0
ja 0x493a67
je case.0x4939f2.8203
cmp ecx, 9
je case.0x4939f2.8203
cmp ecx, 0x20
jmp 0x4930ce
cmp ecx, 0x1680
je case.0x4939f2.8203
cmp ecx, 0x180e
jmp 0x4930ce
cmp ecx, 0x3000
ja case.default.0x4938d8
je case.0x4939f2.8203
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x4938d8
movzx eax, byte [ecx + 0x499984]
jmp dword [eax*4 + 0x49997c]
cmp ebx, dword [ebp + 0x7c]
jae 0x497570
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x1c], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x493aee
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
mov dword [esp + 0x1c], ebx
cmp ecx, 0x85
ja 0x493b0f
je case.default.0x4938d8
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4939f2.8203
jmp dword [ecx*4 + 0x4999e4]
sub ecx, 0x2028
je case.default.0x4938d8
sub ecx, 1
je case.default.0x4938d8
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x491f72
cmp ebx, dword [ebp + 0x7c]
jae 0x497570
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x1c], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x493b71
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
mov dword [esp + 0x1c], ebx
cmp ecx, 0x85
ja 0x493b92
je case.0x4939f2.8203
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4938d8
jmp dword [ecx*4 + 0x4999f4]
sub ecx, 0x2028
je case.0x4939f2.8203
sub ecx, 1
jmp 0x4930ce
cmp ebx, dword [ebp + 0x7c]
jae 0x497570
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
mov dword [esp + 0x1c], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x493be7
movzx eax, word [ebx]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add ebx, 2
mov dword [esp + 0x1c], ebx
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ccc20]
mov eax, edx
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4c0240]
movzx ecx, word [esi + 2]
cmp ecx, 8
ja case.default.0x493c12
jmp dword [ecx*4 + 0x499a04]
cmp dword [esp + 0x20], 0xf
jmp 0x493d69
mov al, byte [eax*8 + 0x4cbb41]
cmp al, 9
je 0x493d58
cmp al, 5
je 0x493d58
cmp al, 8
je 0x493d58
xor ecx, ecx
jmp 0x493d5d
movzx ecx, byte [eax*8 + 0x4cbb41]
xor edx, edx
movzx eax, word [esi + 4]
cmp eax, dword [ecx*4 + 0x4bfd60]
setne dl
xor eax, eax
cmp dword [esp + 0x20], 0x10
sete al
cmp edx, eax
jmp 0x493d69
movzx eax, byte [eax*8 + 0x4cbb41]
xor ecx, ecx
cmp word [esi + 4], ax
setne cl
xor eax, eax
cmp dword [esp + 0x20], 0x10
jmp 0x493d64
movzx eax, byte [eax*8 + 0x4cbb40]
xor ecx, ecx
cmp word [esi + 4], ax
setne cl
xor eax, eax
cmp dword [esp + 0x20], 0x10
jmp 0x493d64
movzx eax, byte [eax*8 + 0x4cbb41]
mov eax, dword [eax*4 + 0x4bfd60]
cmp eax, 1
je 0x493d58
cmp eax, 3
je 0x493d58
xor ecx, ecx
jmp 0x493d5d
movzx eax, byte [eax*8 + 0x4cbb41]
cmp dword [eax*4 + 0x4bfd60], 6
je 0x493d58
cmp edx, 9
je 0x493d58
cmp edx, 0xa
je 0x493d58
cmp edx, 0xc
je 0x493d58
cmp edx, 0xd
je 0x493d58
xor ecx, ecx
jmp 0x493d5d
movzx eax, byte [eax*8 + 0x4cbb41]
cmp dword [eax*4 + 0x4bfd60], 6
je 0x493d58
cmp edx, 9
je 0x493d58
cmp edx, 0xa
je 0x493d58
cmp edx, 0xb
jmp 0x493cf6
movzx eax, byte [eax*8 + 0x4cbb41]
mov eax, dword [eax*4 + 0x4bfd60]
cmp eax, 1
je 0x493d58
cmp eax, 3
je 0x493d58
cmp edx, 0x5f
je 0x493d58
xor ecx, ecx
jmp 0x493d5d
mov ecx, 1
xor eax, eax
cmp dword [esp + 0x20], 0xf
sete al
cmp ecx, eax
je case.default.0x4938d8
add esi, 6
mov dword [esp + 0x14], esi
jmp 0x491f72
mov esi, dword [ebp + 0x7c]
cmp ebx, esi
jae 0x497570
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x1c], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x493dbe
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
mov dword [esp + 0x1c], ebx
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
cmp dword [eax*4 + 0x4bfd60], 2
je case.default.0x4938d8
cmp ebx, esi
jae 0x493e6e
mov dword [esp + 0x1c], ebx
nop dword [eax]
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x493e35
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
cmp dword [eax*4 + 0x4bfd60], 2
jne 0x493e6a
lea ebx, [ebx + edx*2]
cmp ebx, esi
jb 0x493e00
mov dword [esp + 0x1c], ebx
mov esi, dword [esp + 0x14]
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x491f72
movzx eax, word [esi + 2]
xor edx, edx
cmp dword [esp + 0x20], 0x6e
sete dl
add esi, 4
lea ecx, [eax + eax]
mov dword [esp + 0x40], edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x14], esi
cmp ecx, edi
jge 0x493eb4
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + ecx*4]
test esi, esi
js 0x493eb4
mov ebp, dword [eax + ecx*4 + 4]
sub ebp, esi
jmp 0x493ebe
mov ebp, dword [ebp + 0x50]
neg ebp
sbb ebp, ebp
neg ebp
dec ebp
mov eax, dword [esp + 0x14]
movzx eax, word [eax]
mov esi, eax
lea edi, [eax - 0x62]
cmp edi, 7
ja case.default.0x493eda
movzx eax, byte [edi + 0x499a30]
jmp dword [eax*4 + 0x499a28]
add dword [esp + 0x14], 2
mov eax, edi
movsx esi, byte [edi + 0x4bf5d8]
and eax, 1
mov dword [esp + 0x30], eax
movsx eax, byte [edi + 0x4bf5d0]
mov dword [esp + 0x24], eax
test eax, eax
jne 0x493f39
mov dword [esp + 0x24], connect
jmp 0x493f39
mov edi, dword [esp + 0x14]
xor eax, eax
cmp esi, 0x69
sete al
movzx esi, word [edi + 2]
mov dword [esp + 0x30], eax
movzx eax, word [edi + 4]
test eax, eax
cmove eax, dword [esp + 0x54]
add edi, 6
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x170]
test ebp, ebp
je 0x491f67
jns 0x493f52
test esi, esi
je 0x491f67
cmp esi, 1
jl 0x493f8f
mov edi, 1
nop dword [eax]
push edx
push dword [esp + 0x178]
mov edx, ebx
push ebp
call fcn.00491cc0
add esp, 0xc
test eax, eax
js 0x4979a9
mov ecx, dword [esp + 0x38]
lea ebx, [ebx + eax*2]
mov edx, dword [esp + 0x40]
inc edi
mov dword [esp + 0x1c], ebx
cmp edi, esi
jle 0x493f60
mov eax, dword [esp + 0x24]
cmp esi, eax
je 0x491f60
cmp dword [esp + 0x30], 0
je 0x4975b3
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov edi, dword [esp + 0x38]
mov dword [esp + 0x48], esi
nop dword [eax]
cmp esi, dword [esp + 0x24]
jge case.default.0x4938d8
push dword [esp + 0x40]
mov esi, dword [esp + 0x178]
mov edx, ebx
push esi
push ebp
mov ecx, edi
call fcn.00491cc0
add esp, 0xc
test eax, eax
js 0x49759f
mov esi, dword [esp + 0x48]
lea ebx, [ebx + eax*2]
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
inc esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
mov dword [esp + 0x48], esi
test eax, eax
je 0x493ff0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov esi, dword [esp + 0x174]
push edx
push esi
push ebp
mov edx, ebx
call fcn.00491cc0
add esp, 0xc
test eax, eax
js 0x49759f
mov edi, dword [esp + 0x170]
lea ebx, [ebx + eax*2]
mov dword [esp + 0x1c], ebx
mov ebp, esi
jmp 0x491f6e
movzx eax, word [esi + 0x22]
lea ebp, [esi + 2]
add esi, 0x22
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x14], esi
mov edx, eax
lea ecx, [eax - 0x62]
cmp ecx, 7
ja case.default.0x4940c1
movzx eax, byte [ecx + 0x499a40]
jmp dword [eax*4 + 0x499a38]
movsx eax, byte [ecx + 0x4bf5d0]
mov edx, ecx
movsx edi, byte [ecx + 0x4bf5d8]
and edx, 1
add esi, 2
mov dword [esp + 0x18], edx
test eax, eax
mov ecx, SysReAllocString
cmove eax, ecx
jmp 0x49410f
movzx edi, word [esi + 2]
xor eax, eax
cmp edx, 0x69
mov ecx, SysReAllocString
sete al
mov dword [esp + 0x18], eax
movzx eax, word [esi + 4]
test eax, eax
cmove eax, ecx
add esi, 6
mov dword [esp + 0x14], esi
mov esi, 1
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edi
cmp edi, esi
jl 0x4941be
jmp 0x49413d
mov edi, 1
mov dword [esp + 0x24], 1
mov dword [esp + 0x28], edi
mov esi, edi
mov ecx, dword [esp + 0x174]
cmp ebx, dword [ecx + 0x7c]
jae 0x497b8e
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
mov dword [esp + 0x1c], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x494185
movzx eax, word [ebx]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
add ebx, 2
or edx, eax
mov dword [esp + 0x1c], ebx
add edx, 0x10000
cmp edx, 0xff
jbe 0x49419a
cmp dword [esp + 0x20], 0x6a
je case.default.0x4938d8
jmp 0x4941b9
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
test byte [edx + ebp], al
je case.default.0x4938d8
mov ecx, dword [esp + 0x174]
inc esi
cmp esi, edi
jle 0x494144
mov eax, dword [esp + 0x24]
cmp edi, eax
je 0x491f60
cmp dword [esp + 0x18], 0
je 0x4976d6
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov esi, edi
cmp esi, dword [esp + 0x24]
jge case.default.0x4938d8
mov ecx, dword [esp + 0x174]
cmp ebx, dword [ecx + 0x7c]
jae 0x497b8e
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49425c
movzx eax, word [ebx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add ebx, 2
add edx, 0x10000
cmp edx, 0xff
jbe 0x497674
cmp dword [esp + 0x20], 0x6a
je case.default.0x4938d8
jmp 0x497693
movzx eax, word [esi + 2]
lea ebp, [esi + 4]
mov dword [esp + 0x3c], ebp
lea esi, [esi + eax*2]
movzx eax, word [esi]
mov dword [esp + 0x14], esi
mov edx, eax
lea ecx, [eax - 0x62]
cmp ecx, 7
ja case.default.0x4942a2
movzx eax, byte [ecx + 0x499a50]
jmp dword [eax*4 + 0x499a48]
movsx eax, byte [ecx + 0x4bf5d0]
mov edx, ecx
movsx edi, byte [ecx + 0x4bf5d8]
add esi, 2
and edx, 1
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x24], eax
test eax, eax
jne 0x494302
mov dword [esp + 0x24], connect
jmp 0x494302
movzx edi, word [esi + 2]
xor eax, eax
cmp edx, 0x69
mov ecx, SysReAllocString
sete al
mov dword [esp + 0x18], eax
movzx eax, word [esi + 4]
test eax, eax
cmove eax, ecx
add esi, 6
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], esi
mov esi, 1
cmp edi, esi
jl 0x494381
jmp 0x494320
mov edi, 1
mov dword [esp + 0x24], 1
mov esi, edi
mov ecx, dword [esp + 0x174]
cmp ebx, dword [ecx + 0x7c]
jae 0x497b8e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x1c], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x494368
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
mov dword [esp + 0x1c], ebx
push 1
mov edx, ebp
call fcn.0049b500
add esp, 4
test eax, eax
je case.default.0x4938d8
inc esi
cmp esi, edi
jle 0x494320
mov eax, dword [esp + 0x24]
cmp edi, eax
je 0x491f60
cmp dword [esp + 0x18], 0
je 0x497850
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov esi, edi
cmp esi, dword [esp + 0x24]
jge case.default.0x4938d8
mov ecx, dword [esp + 0x174]
cmp ebx, dword [ecx + 0x7c]
jae 0x497b8e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49441f
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
push 1
mov edx, ebp
call fcn.0049b500
add esp, 4
test eax, eax
je case.default.0x4938d8
mov eax, dword [esp + 0x17c]
inc edi
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov ecx, ebx
mov esi, edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x4943d5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ax, word [esi + 2]
add esi, 2
mov ecx, 0xfc00
mov dword [esp + 0x14], esi
and ax, cx
xor edx, edx
mov ecx, 0xd800
cmp ax, cx
mov ecx, dword [ebp + 0x7c]
mov eax, ecx
sete dl
sub eax, ebx
inc edx
sar eax, 1
cmp edx, eax
jg 0x49798e
nop
mov eax, dword [esp + 0x14]
add esi, 2
dec edx
mov dword [esp + 0x14], esi
movzx ecx, word [eax]
mov ax, word [ebx]
add ebx, 2
mov dword [esp + 0x1c], ebx
cmp cx, ax
jne case.default.0x4938d8
test edx, edx
jg 0x4944b0
jmp 0x491f6e
cmp ebx, dword [ebp + 0x7c]
jae 0x497570
movzx edx, word [esi + 2]
lea ecx, [esi + 2]
mov eax, edx
lea esi, [ecx + 2]
and eax, 0xfc00
mov dword [esp + 0x14], esi
cmp eax, 0xd800
jne 0x494520
movzx eax, word [esi]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov edi, 4
add edx, 0x10000
jmp 0x494525
mov edi, 2
movzx eax, word [ebx]
cmp edx, 0x80
jae 0x494565
mov edi, 0xff
mov ecx, eax
cmp ax, di
ja 0x494543
mov eax, dword [ebp + 0x34]
movzx ecx, byte [eax + ecx]
mov eax, dword [ebp + 0x34]
movzx eax, byte [edx + eax]
cmp eax, ecx
jne case.default.0x4938d8
mov edi, dword [esp + 0x170]
add ebx, 2
mov dword [esp + 0x1c], ebx
jmp 0x491f72
mov esi, eax
add ebx, 2
and eax, 0xfc00
mov dword [esp + 0x1c], ebx
cmp eax, 0xd800
jne 0x49459a
movzx eax, word [ebx]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
add ebx, 2
or esi, eax
mov dword [esp + 0x1c], ebx
add esi, 0x10000
lea eax, [edi + ecx]
mov edi, dword [esp + 0x170]
mov dword [esp + 0x14], eax
cmp edx, esi
je 0x491f6e
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ccc20]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4c0240]
mov eax, dword [eax*8 + 0x4cbb44]
add eax, edx
cmp esi, eax
jne case.default.0x4938d8
jmp 0x491f6e
movzx ebp, word [esi + 2]
add esi, 4
mov edi, ebp
jmp 0x49469e
mov dword [esp + 0x2c], 1
movzx ebp, word [esi + 2]
xor edi, edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], ebp
cmp ecx, 0x28
je 0x494616
mov dword [esp + 0x18], edi
cmp ecx, 0x35
jne 0x49461e
mov dword [esp + 0x18], 1
add esi, 4
jmp 0x4946a6
xor edi, edi
mov dword [esp + 0x2c], 1
mov ebp, SysReAllocString
add esi, 2
jmp 0x49469e
mov dword [esp + 0x2c], 1
mov edi, 1
mov ebp, SysReAllocString
add esi, 2
jmp 0x49469e
xor edi, edi
mov dword [esp + 0x2c], 1
add esi, 2
lea ebp, [edi + 1]
jmp 0x49469e
cmp edx, 0x2e
mov ecx, edx
sbb eax, eax
add esi, 2
and eax, 0xfffffff3
add eax, 0x2e
sub ecx, eax
mov eax, ecx
mov dword [esp + 0x18], ecx
and dword [esp + 0x18], 1
movsx ebp, byte [eax + 0x4bf5d0]
movsx edi, byte [eax + 0x4bf5d8]
test ebp, ebp
mov eax, SysReAllocString
cmove ebp, eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], ebp
mov ecx, esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x30], esi
movzx esi, word [esi]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x494a8c
mov eax, ecx
and esi, 0x3ff
shl esi, 0xa
movzx edx, word [eax + 2]
lea eax, [ecx + 4]
and edx, 0x3ff
mov dword [esp + 0x14], eax
or edx, esi
mov esi, 2
add edx, 0x10000
mov dword [esp + 0x40], esi
cmp dword [esp + 0x20], 0x2e
jb 0x494733
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ccc20]
mov eax, edx
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4c0240]
mov ecx, dword [eax*8 + 0x4cbb44]
add ecx, edx
cmp ecx, edx
je 0x494733
lea edx, [esp + 0x74]
call fcn.0049b2f0
mov dword [esp + 0x38], eax
jmp 0x49473b
mov dword [esp + 0x38], 0
mov ebp, 1
cmp edi, ebp
jl 0x494872
mov eax, dword [esp + 0x174]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x40], esi
mov dword [esp + 0x14], edx
mov ecx, dword [eax + 0x7c]
mov dword [esp + 0x20], ecx
lea eax, [ecx - 4]
mov dword [esp + 0x3c], eax
nop dword [eax]
cmp ebx, eax
ja 0x4947d4
mov edx, dword [esp + 0x30]
add esi, esi
mov ecx, ebx
sub esi, 4
jb 0x494796
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x49479b
add ecx, 4
add edx, 4
sub esi, 4
jae 0x494785
cmp esi, 0xfffffffc
je 0x4947c8
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4947d0
cmp esi, 0xfffffffd
je 0x4947c8
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4947d0
cmp esi, 0xfffffffe
je 0x4947c8
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4947d0
cmp esi, 0xffffffff
je 0x4947c8
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4947d0
add ebx, 4
jmp 0x494859
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
test edx, edx
jle 0x4979a9
lea edi, [edx + edx]
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x4979a9
lea esi, [edx + edx]
mov ecx, ebx
lea edx, [esp + 0x74]
sub esi, 4
jb 0x494811
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x494816
add ecx, 4
add edx, 4
sub esi, 4
jae 0x494800
cmp esi, 0xfffffffc
je 0x494853
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4979a9
cmp esi, 0xfffffffd
je 0x494853
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4979a9
cmp esi, 0xfffffffe
je 0x494853
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4979a9
cmp esi, 0xffffffff
je 0x494853
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4979a9
add ebx, edi
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x3c]
inc ebp
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x1c], ebx
cmp ebp, edi
jle 0x494770
mov eax, dword [esp + 0x24]
cmp edi, eax
je 0x491f60
cmp dword [esp + 0x18], 0
jne 0x4979df
mov ebp, ebx
mov dword [esp + 0x18], ebp
cmp edi, eax
jge 0x4949ae
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x7c]
mov dword [esp + 0x20], eax
lea ebp, [eax - 4]
cmp ebx, ebp
ja 0x49490f
mov edx, dword [esp + 0x30]
add esi, esi
mov ecx, ebx
sub esi, 4
jb 0x4948d1
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4948d6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4948c0
cmp esi, 0xfffffffc
je 0x494903
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x49490b
cmp esi, 0xfffffffd
je 0x494903
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x49490b
cmp esi, 0xfffffffe
je 0x494903
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x49490b
cmp esi, 0xffffffff
je 0x494903
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x49490b
add ebx, 4
jmp 0x49498f
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
test ecx, ecx
jle 0x494a55
lea edi, [ecx + ecx]
sub eax, edi
cmp ebx, eax
ja 0x494a55
lea esi, [ecx + ecx]
mov ecx, ebx
lea edx, [esp + 0x74]
sub esi, 4
jb 0x494947
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x49494c
add ecx, 4
add edx, 4
sub esi, 4
jae 0x494936
cmp esi, 0xfffffffc
je 0x494989
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x494a55
cmp esi, 0xfffffffd
je 0x494989
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x494a55
cmp esi, 0xfffffffe
je 0x494989
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x494a55
cmp esi, 0xffffffff
je 0x494989
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x494a55
add ebx, edi
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
inc edi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], edi
cmp edi, dword [esp + 0x24]
jl 0x4948a8
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x174]
cmp dword [esp + 0x2c], 0
jne 0x491f60
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edi, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, edi
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
cmp ebx, ebp
je case.default.0x4938d8
mov ax, word [ebx - 2]
add ebx, 0xfffffffe
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x494a1b
add ebx, 0xfffffffe
mov eax, dword [esp + 0x17c]
mov edx, edi
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x4949f7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov esi, dword [esp + 0x174]
mov eax, dword [esi + 0x8c]
test eax, eax
je 0x494a83
cmp ebx, dword [esi + 0x7c]
jb 0x494a83
cmp ebx, dword [esi + 0x88]
jbe 0x494a83
mov dword [esi + 0x64], 1
cmp eax, 1
jg 0x4991b3
mov ebp, dword [esp + 0x18]
jmp 0x4949b5
add ecx, 2
mov dword [esp + 0x14], ecx
cmp edx, 0x2e
jb 0x494bac
mov edx, dword [esp + 0x174]
cmp esi, 0x7f
jbe 0x494ad1
mov eax, esi
shr eax, 7
movzx ecx, byte [eax + 0x4ccc20]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4c0240]
mov ebp, dword [eax*8 + 0x4cbb44]
add ebp, esi
jmp 0x494ad8
mov eax, dword [edx + 0x38]
movzx ebp, byte [eax + esi]
mov ecx, 1
cmp edi, ecx
jl 0x494b1b
mov edx, dword [edx + 0x7c]
mov eax, dword [esp + 0x14]
nop dword [eax + eax]
mov dword [esp + 0x14], eax
cmp ebx, edx
jae 0x497b87
movzx eax, word [ebx]
cmp esi, eax
je 0x494b0b
cmp ebp, eax
jne case.default.0x4938d8
mov eax, dword [esp + 0x14]
add ebx, 2
inc ecx
mov dword [esp + 0x1c], ebx
cmp ecx, edi
jle 0x494af0
mov eax, dword [esp + 0x24]
cmp edi, eax
je 0x491f60
cmp dword [esp + 0x18], 0
jne 0x497bf7
mov edx, dword [esp + 0x28]
mov edi, ebx
cmp edx, eax
jge 0x494b63
mov eax, dword [esp + 0x174]
mov ecx, dword [eax + 0x7c]
cmp ebx, ecx
jae 0x494b81
movzx eax, word [ebx]
cmp esi, eax
je 0x494b55
cmp ebp, eax
jne 0x494b63
add ebx, 2
inc edx
mov dword [esp + 0x1c], ebx
cmp edx, dword [esp + 0x24]
jl 0x494b46
mov ebp, dword [esp + 0x174]
cmp dword [esp + 0x2c], 0
je 0x497ba1
mov edi, dword [esp + 0x170]
jmp 0x491f6e
mov ebp, dword [esp + 0x174]
mov eax, dword [ebp + 0x8c]
test eax, eax
je 0x494b6a
cmp ebx, dword [ebp + 0x88]
jbe 0x494b6a
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4991b3
jmp 0x494b6a
cmp edi, 1
jl 0x494be3
mov eax, dword [esp + 0x174]
mov ecx, 1
mov edx, dword [eax + 0x7c]
cmp ebx, edx
jae 0x497b87
movzx eax, word [ebx]
add ebx, 2
mov dword [esp + 0x1c], ebx
cmp esi, eax
jne case.default.0x4938d8
inc ecx
cmp ecx, edi
jle 0x494bc0
mov ecx, dword [esp + 0x14]
cmp edi, ebp
je 0x491f60
cmp dword [esp + 0x18], 0
jne 0x497cf7
mov edx, dword [esp + 0x28]
mov edi, ebx
cmp edx, ebp
jge 0x494c27
mov eax, dword [esp + 0x174]
mov ecx, dword [eax + 0x7c]
nop word [eax + eax]
cmp ebx, ecx
jae 0x494c45
movzx eax, word [ebx]
cmp esi, eax
jne 0x494c27
add ebx, 2
inc edx
mov dword [esp + 0x1c], ebx
cmp edx, ebp
jl 0x494c10
mov ebp, dword [esp + 0x174]
cmp dword [esp + 0x2c], 0
je 0x497ca5
mov edi, dword [esp + 0x170]
jmp 0x491f6e
mov ebp, dword [esp + 0x174]
mov eax, dword [ebp + 0x8c]
test eax, eax
je 0x494c2e
cmp ebx, dword [ebp + 0x88]
jbe 0x494c2e
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4991b3
jmp 0x494c2e
cmp ebx, dword [ebp + 0x7c]
jae 0x497570
lea ecx, [esi + 2]
movzx esi, word [ebx]
mov eax, esi
add ebx, 2
and eax, 0xfc00
mov dword [esp + 0x1c], ebx
cmp eax, 0xd800
jne 0x494cb4
movzx eax, word [ebx]
and esi, 0x3ff
shl esi, 0xa
and eax, 0x3ff
or esi, eax
add esi, 0x10000
add ebx, 2
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x20], 0x20
lea eax, [ecx + 2]
movzx edx, word [ecx]
mov dword [esp + 0x14], eax
jne 0x494d0f
cmp edx, 0x7f
jbe 0x494cf3
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ccc20]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4c0240]
mov eax, dword [eax*8 + 0x4cbb44]
add eax, edx
jmp 0x494cfa
mov eax, dword [ebp + 0x38]
movzx eax, byte [eax + edx]
cmp edx, esi
je case.default.0x4938d8
cmp eax, esi
je case.default.0x4938d8
jmp 0x491f6e
mov dword [esp + 0x14], eax
cmp edx, esi
je case.default.0x4938d8
jmp 0x491f6e
movzx eax, word [esi + 2]
lea ecx, [esi + 4]
mov dword [esp + 0x28], eax
mov edi, eax
jmp 0x494ded
movzx eax, word [esi + 2]
xor edi, edi
mov dword [esp + 0x28], eax
cmp ecx, 0x42
je 0x494d4a
mov dword [esp + 0x18], edi
cmp ecx, 0x4f
jne 0x494d52
mov dword [esp + 0x18], 1
lea ecx, [esi + 4]
jmp 0x494ded
mov dword [esp + 0x2c], 1
lea ecx, [esi + 2]
xor edi, edi
jmp 0x494de5
mov dword [esp + 0x2c], 1
lea ecx, [esi + 2]
mov edi, 1
jmp 0x494de5
mov dword [esp + 0x2c], 1
lea ecx, [esi + 2]
xor edi, edi
mov dword [esp + 0x28], 1
jmp 0x494ded
movzx eax, word [esi + 2]
lea ecx, [esi + 4]
mov dword [esp + 0x2c], 1
xor edi, edi
mov dword [esp + 0x28], eax
jmp 0x494ded
cmp edx, 0x48
mov ecx, edx
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x48
sub ecx, eax
mov eax, ecx
mov dword [esp + 0x18], ecx
and dword [esp + 0x18], 1
lea ecx, [esi + 2]
movsx edi, byte [eax + 0x4bf5d8]
movsx eax, byte [eax + 0x4bf5d0]
mov dword [esp + 0x28], eax
test eax, eax
jne 0x494ded
mov dword [esp + 0x28], connect
movzx ebp, word [ecx]
lea esi, [ecx + 2]
cmp edx, 0x48
mov dword [esp + 0x24], ebp
mov dword [esp + 0x14], esi
mov edx, 1
jb 0x494f91
cmp ebp, 0x7f
jbe 0x494e40
mov eax, ebp
shr eax, 7
movzx ecx, byte [eax + 0x4ccc20]
mov eax, ebp
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4c0240]
mov ecx, dword [esp + 0x174]
mov ebp, dword [eax*8 + 0x4cbb44]
add ebp, dword [esp + 0x24]
jmp 0x494e4e
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x38]
movzx ebp, byte [eax + ebp]
mov dword [esp + 0x30], ebp
cmp edi, 1
jl 0x494ebb
mov esi, dword [ecx + 0x7c]
nop
cmp ebx, esi
jae 0x497b87
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x1c], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x494ea0
movzx eax, word [ebx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
add ebx, 2
or ecx, eax
mov dword [esp + 0x1c], ebx
add ecx, 0x10000
cmp dword [esp + 0x24], ecx
je case.default.0x4938d8
cmp ebp, ecx
je case.default.0x4938d8
inc edx
cmp edx, edi
jle 0x494e60
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
cmp edi, eax
je 0x4920d0
cmp dword [esp + 0x18], 0
jne 0x497e4f
mov ecx, dword [esp + 0x174]
mov ebp, ebx
cmp edi, eax
jge 0x494f44
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x494f66
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x494f23
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp dword [esp + 0x24], ecx
je 0x494f3d
cmp dword [esp + 0x30], ecx
je 0x494f3d
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x1c], ebx
cmp edi, dword [esp + 0x28]
jl 0x494ee6
mov ecx, dword [esp + 0x174]
cmp dword [esp + 0x2c], 0
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x170]
je 0x497dbf
mov ebp, dword [esp + 0x174]
jmp 0x491f72
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x494f44
cmp ebx, dword [ecx + 0x88]
jbe 0x494f44
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x4991b3
jmp 0x494f44
cmp edi, 1
jl 0x494ff5
mov ecx, dword [esp + 0x174]
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x497b87
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x1c], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x494fe4
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
add ebx, 2
or ecx, eax
mov dword [esp + 0x1c], ebx
add ecx, 0x10000
cmp ebp, ecx
je case.default.0x4938d8
inc edx
cmp edx, edi
jle 0x494fa4
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
cmp edi, eax
je 0x4920d0
cmp dword [esp + 0x18], 0
jne 0x497fbf
mov ecx, dword [esp + 0x174]
mov ebp, ebx
cmp edi, eax
jge 0x495078
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x49509a
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49505d
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp dword [esp + 0x24], ecx
je 0x495071
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x1c], ebx
cmp edi, dword [esp + 0x28]
jl 0x495020
mov ecx, dword [esp + 0x174]
cmp dword [esp + 0x2c], 0
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x170]
je 0x497f2f
mov ebp, dword [esp + 0x174]
jmp 0x491f72
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x495078
cmp ebx, dword [ecx + 0x88]
jbe 0x495078
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x4991b3
jmp 0x495078
movzx eax, word [esi + 2]
lea ecx, [esi + 4]
mov ebp, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebp
mov dword [esp + 0x18], 1
jmp 0x49519e
movzx eax, word [esi + 2]
xor ebp, ebp
mov dword [esp + 0x20], eax
xor eax, eax
cmp ecx, 0x5c
mov dword [esp + 0x24], ebp
lea ecx, [esi + 4]
sete al
mov dword [esp + 0x18], eax
jmp 0x49519e
xor ebp, ebp
mov dword [esp + 0x2c], 1
mov dword [esp + 0x24], ebp
lea ecx, [esi + 2]
jmp 0x495196
mov ebp, 1
mov dword [esp + 0x2c], 1
mov dword [esp + 0x24], ebp
lea ecx, [esi + 2]
jmp 0x495196
xor ebp, ebp
mov dword [esp + 0x2c], 1
mov dword [esp + 0x24], ebp
lea ecx, [esi + 2]
mov dword [esp + 0x20], 1
jmp 0x49519e
movzx eax, word [esi + 2]
lea ecx, [esi + 4]
xor ebp, ebp
mov dword [esp + 0x2c], 1
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], eax
jmp 0x49519e
add edx, 0xffffffab
lea ecx, [esi + 2]
mov eax, edx
and edx, 1
mov dword [esp + 0x18], edx
movsx ebp, byte [eax + 0x4bf5d8]
movsx eax, byte [eax + 0x4bf5d0]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], eax
test eax, eax
jne 0x49519e
mov dword [esp + 0x20], connect
movzx eax, word [ecx]
lea esi, [ecx + 2]
mov edx, eax
mov dword [esp + 0x14], esi
mov edi, eax
mov dword [esp + 0x28], edi
cmp edx, 0x10
je 0x4951c3
cmp edx, 0xf
je 0x4951c3
or eax, 0xffffffff
mov dword [esp + 0x30], eax
jmp 0x4951e9
movzx ecx, word [esi]
xor eax, eax
cmp edx, 0xf
mov dword [esp + 0x30], ecx
sete al
mov dword [esp + 0x34], eax
lea eax, [esi + 2]
movzx esi, word [eax]
add eax, 2
mov dword [esp + 0x14], eax
mov eax, ecx
mov dword [esp + 0x44], esi
test ebp, ebp
jle 0x495f3b
test eax, eax
js 0x495761
cmp eax, 8
ja case.default.0x493c12
jmp dword [eax*4 + 0x499a58]
cmp dword [esp + 0x34], 0
jne case.default.0x4938d8
mov eax, dword [esp + 0x174]
mov edx, 1
mov esi, dword [eax + 0x7c]
mov ecx, ebx
cmp ebx, esi
jae 0x497b87
mov ax, word [ebx]
mov ebx, 0xfc00
and ax, bx
xor ebx, ebx
cmp ax, word [esp + 0x48]
sete bl
inc edx
lea ebx, [ebx*2 + 2]
add ebx, ecx
cmp edx, ebp
jle 0x495223
mov dword [esp + 0x1c], ebx
jmp 0x495f3b
mov ecx, dword [esp + 0x174]
mov edx, 1
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x497b87
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4952a0
movzx eax, word [ebx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ebx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4c0240]
mov al, byte [eax*8 + 0x4cbb41]
cmp al, 9
je 0x4952d3
cmp al, 5
je 0x4952d3
cmp al, 8
je 0x4952d3
xor eax, eax
jmp 0x4952d8
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.default.0x4938d8
inc edx
cmp edx, ebp
jle 0x495268
mov dword [esp + 0x1c], ebx
jmp 0x495f3b
mov ecx, dword [esp + 0x174]
mov edx, 1
mov esi, dword [ecx + 0x7c]
nop
cmp ebx, esi
jae 0x497b87
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x495338
movzx eax, word [ebx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ebx, 2
add ecx, 0x10000
mov edi, dword [esp + 0x44]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
cmp dword [eax*4 + 0x4bfd60], edi
mov edi, dword [esp + 0x28]
sete cl
cmp ecx, dword [esp + 0x34]
je case.default.0x4938d8
inc edx
cmp edx, ebp
jle 0x495300
mov dword [esp + 0x1c], ebx
jmp 0x495f3b
mov ecx, dword [esp + 0x174]
mov edx, 1
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x497b87
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4953cf
movzx eax, word [ebx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ebx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
cmp eax, dword [esp + 0x44]
sete cl
cmp ecx, dword [esp + 0x34]
je case.default.0x4938d8
inc edx
cmp edx, ebp
jle 0x495397
mov dword [esp + 0x1c], ebx
jmp 0x495f3b
mov ecx, dword [esp + 0x174]
mov edx, 1
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x497b87
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49545b
movzx eax, word [ebx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ebx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb40]
cmp eax, dword [esp + 0x44]
sete cl
cmp ecx, dword [esp + 0x34]
je case.default.0x4938d8
inc edx
cmp edx, ebp
jle 0x495423
mov dword [esp + 0x1c], ebx
jmp 0x495f3b
mov ecx, dword [esp + 0x174]
mov edx, 1
mov esi, dword [ecx + 0x7c]
nop
cmp ebx, esi
jae 0x497b87
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4954e8
movzx eax, word [ebx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ebx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
mov eax, dword [eax*4 + 0x4bfd60]
cmp eax, 1
je 0x495521
cmp eax, 3
je 0x495521
xor eax, eax
jmp 0x495526
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.default.0x4938d8
inc edx
cmp edx, ebp
jle 0x4954b0
mov dword [esp + 0x1c], ebx
jmp 0x495f3b
mov ecx, dword [esp + 0x174]
mov esi, 1
mov edi, dword [ecx + 0x7c]
cmp ebx, edi
jae 0x497b87
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x495589
movzx eax, word [ebx]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add ebx, 2
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ccc20]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
cmp dword [eax*4 + 0x4bfd60], 6
je 0x4955d1
cmp edx, 9
je 0x4955d1
cmp edx, 0xa
je 0x4955d1
cmp edx, 0xc
je 0x4955d1
cmp edx, 0xd
je 0x4955d1
xor eax, eax
jmp 0x4955d6
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.default.0x4938d8
inc esi
cmp esi, ebp
jle 0x495551
mov edi, dword [esp + 0x28]
mov dword [esp + 0x1c], ebx
jmp 0x495f3b
mov ecx, dword [esp + 0x174]
mov esi, 1
mov edi, dword [ecx + 0x7c]
cmp ebx, edi
jae 0x497b87
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49563d
movzx eax, word [ebx]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add ebx, 2
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ccc20]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
cmp dword [eax*4 + 0x4bfd60], 6
je 0x49568a
cmp edx, 9
je 0x49568a
cmp edx, 0xa
je 0x49568a
cmp edx, 0xb
je 0x49568a
cmp edx, 0xc
je 0x49568a
cmp edx, 0xd
je 0x49568a
xor eax, eax
jmp 0x49568f
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.default.0x4938d8
inc esi
cmp esi, ebp
jle 0x495605
mov edi, dword [esp + 0x28]
mov dword [esp + 0x1c], ebx
jmp 0x495f3b
mov ecx, dword [esp + 0x174]
mov esi, 1
mov edi, dword [ecx + 0x7c]
nop
cmp ebx, edi
jae 0x497b87
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
mov dword [esp + 0x1c], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x495700
movzx eax, word [ebx]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
add ebx, 2
or edx, eax
mov dword [esp + 0x1c], ebx
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ccc20]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
mov eax, dword [eax*4 + 0x4bfd60]
cmp eax, 1
je 0x495740
cmp eax, 3
je 0x495740
cmp edx, 0x5f
je 0x495740
xor eax, eax
jmp 0x495745
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.default.0x4938d8
inc esi
cmp esi, ebp
jle 0x4956c0
mov edi, dword [esp + 0x28]
jmp 0x495f3b
cmp edx, 0x16
jne 0x49587f
mov esi, dword [esp + 0x174]
lea edi, [edx - 0x15]
mov ebp, dword [esi + 0x7c]
cmp ebx, ebp
jae 0x498095
movzx ecx, word [ebx]
lea edx, [ebx + 2]
mov eax, ecx
mov ebx, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4957b1
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
cmp dword [eax*4 + 0x4bfd60], 2
je case.default.0x4938d8
mov esi, dword [esi + 0x7c]
cmp ebx, esi
jae 0x49585a
nop
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x495825
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
cmp dword [eax*4 + 0x4bfd60], 2
jne 0x49585a
lea ebx, [ebx + edx*2]
cmp ebx, esi
jb 0x4957f0
mov esi, dword [esp + 0x174]
inc edi
cmp edi, dword [esp + 0x24]
jle 0x495777
mov ebp, dword [esp + 0x24]
mov ecx, esi
mov edi, dword [esp + 0x28]
mov dword [esp + 0x1c], ebx
jmp 0x495f42
lea eax, [edi - 6]
cmp eax, 0xf
ja case.default.0x493c12
jmp dword [eax*4 + 0x499a7c]
mov ecx, dword [esp + 0x174]
mov esi, 1
nop
mov ecx, dword [ecx + 0x7c]
cmp ebx, ecx
jae 0x497b87
mov eax, dword [esp + 0x174]
mov edx, dword [eax + 0x18]
add eax, 0x1c
test edx, edx
je 0x49590f
push 1
push eax
push ecx
mov ecx, ebx
call fcn.0049b350
add esp, 0xc
neg eax
sbb eax, eax
neg eax
jne case.default.0x4938d8
mov ecx, dword [esp + 0x174]
add ebx, 2
cmp ebx, dword [ecx + 0x7c]
jae 0x495901
mov ax, word [ebx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x495901
add ebx, 2
inc esi
cmp esi, ebp
jle 0x4958a0
mov dword [esp + 0x1c], ebx
jmp 0x495f42
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja 0x4958da
mov ecx, dword [esp + 0x174]
mov ax, word [ebx]
cmp ax, word [ecx + 0x2c]
jne 0x4958e1
cmp edx, 1
je case.default.0x4938d8
mov ax, word [ebx + 2]
cmp ax, word [ecx + 0x2e]
je case.default.0x4938d8
jmp 0x4958e1
mov esi, dword [esp + 0x174]
mov ecx, 1
mov edx, dword [esi + 0x7c]
cmp ebx, edx
jae 0x498095
add ebx, 2
cmp ebx, edx
jae 0x495973
mov ax, word [ebx]
and ax, word [esp + 0x4c]
cmp ax, word [esp + 0x50]
jne 0x495973
add ebx, 2
inc ecx
cmp ecx, ebp
jle 0x495952
mov dword [esp + 0x1c], ebx
mov ecx, esi
jmp 0x495f42
mov eax, dword [esp + 0x174]
lea ecx, [ebp*2]
mov eax, dword [eax + 0x7c]
sub eax, ecx
cmp ebx, eax
ja case.default.0x4938d8
add ebx, ecx
mov dword [esp + 0x1c], ebx
jmp 0x495f3b
mov ecx, dword [esp + 0x174]
mov esi, 1
mov edi, dword [ecx + 0x7c]
cmp ebx, edi
jae 0x497b8e
movzx ecx, word [ebx]
lea edx, [ebx + 2]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4959f0
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edx, 2
cmp ecx, 0x85
ja 0x495a4c
je case.0x495a0e.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4938d8
jmp dword [ecx*4 + 0x499abc]
mov ebx, edx
cmp edx, edi
jae 0x495a2f
cmp word [edx], 0xa
mov ecx, dword [esp + 0x174]
jne 0x495a36
lea ebx, [edx + 2]
jmp 0x495a36
mov ebx, edx
mov ecx, dword [esp + 0x174]
inc esi
cmp esi, ebp
jle 0x4959b8
mov edi, dword [esp + 0x28]
mov dword [esp + 0x1c], ebx
jmp 0x495f42
sub ecx, 0x2028
je case.0x495a0e.11
sub ecx, 1
jne case.default.0x4938d8
mov ecx, dword [esp + 0x174]
mov ebx, edx
cmp dword [ecx + 0x68], 0
jne case.default.0x4938d8
jmp 0x495a36
mov ecx, dword [esp + 0x174]
mov edx, 1
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x497b87
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x495ab9
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
cmp ecx, 0x2000
ja 0x495b13
je case.default.0x4938d8
cmp ecx, 0xa0
ja 0x495af9
je case.default.0x4938d8
cmp ecx, 9
je case.default.0x4938d8
cmp ecx, 0x20
je case.default.0x4938d8
inc edx
cmp edx, ebp
jle 0x495a81
mov dword [esp + 0x1c], ebx
jmp 0x495f3b
cmp ecx, 0x1680
je case.default.0x4938d8
cmp ecx, 0x180e
je case.default.0x4938d8
jmp case.0x495b33.8203
cmp ecx, 0x3000
ja case.0x495b33.8203
je case.default.0x4938d8
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x495b33.8203
movzx eax, byte [ecx + 0x499ad4]
jmp dword [eax*4 + 0x499acc]
mov ecx, dword [esp + 0x174]
mov edx, 1
mov esi, dword [ecx + 0x7c]
nop dword [eax]
cmp ebx, esi
jae 0x497b87
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x495b88
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
cmp ecx, 0x2000
ja 0x495bd2
je case.0x495bf6.8193
cmp ecx, 0xa0
ja 0x495bbc
je case.0x495bf6.8193
cmp ecx, 9
je case.0x495bf6.8193
cmp ecx, 0x20
jne case.default.0x4938d8
inc edx
cmp edx, ebp
jle 0x495b50
mov dword [esp + 0x1c], ebx
jmp 0x495f3b
cmp ecx, 0x1680
je case.0x495bf6.8193
cmp ecx, 0x180e
jne case.default.0x4938d8
jmp case.0x495bf6.8193
cmp ecx, 0x3000
ja case.default.0x4938d8
je case.0x495bf6.8193
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x4938d8
movzx eax, byte [ecx + 0x499b3c]
jmp dword [eax*4 + 0x499b34]
mov ecx, dword [esp + 0x174]
mov edx, 1
mov esi, dword [ecx + 0x7c]
nop dword [eax]
cmp ebx, esi
jae 0x497b87
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x495c48
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
cmp ecx, 0x85
ja 0x495c65
je case.default.0x4938d8
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x495c5e
jmp dword [ecx*4 + 0x499b9c]
sub ecx, 0x2028
je case.default.0x4938d8
sub ecx, 1
je case.default.0x4938d8
inc edx
cmp edx, ebp
jle 0x495c10
mov dword [esp + 0x1c], ebx
jmp 0x495f3b
mov ecx, dword [esp + 0x174]
mov edx, 1
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x497b87
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x495ccf
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
cmp ecx, 0x85
ja 0x495cec
je case.0x495ce5.10
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4938d8
jmp dword [ecx*4 + 0x499bac]
sub ecx, 0x2028
je case.0x495ce5.10
sub ecx, 1
jne case.default.0x4938d8
inc edx
cmp edx, ebp
jle 0x495c97
mov dword [esp + 0x1c], ebx
jmp 0x495f3b
mov ecx, dword [esp + 0x174]
mov edx, 1
mov esi, dword [ecx + 0x7c]
nop word [eax + eax]
cmp ebx, esi
jae 0x497b87
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x495d58
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
cmp ecx, 0x80
jae 0x495d74
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 4
jne case.default.0x4938d8
inc edx
cmp edx, ebp
jle 0x495d20
mov dword [esp + 0x1c], ebx
jmp 0x495f3b
mov ecx, dword [esp + 0x174]
mov edx, 1
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x497b87
movzx eax, word [ebx]
mov ecx, 0x80
cmp ax, cx
jae case.default.0x4938d8
mov ecx, eax
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 4
je case.default.0x4938d8
inc edx
add ebx, 2
cmp edx, ebp
jle 0x495d91
mov dword [esp + 0x1c], ebx
jmp 0x495f3b
mov eax, dword [esp + 0x174]
mov edx, 1
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x497b87
movzx eax, word [ebx]
mov ecx, 0x80
cmp ax, cx
jae 0x495e0b
mov ecx, eax
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 1
jne case.default.0x4938d8
add ebx, 2
cmp ebx, esi
jae 0x495e2a
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x495e2a
add ebx, 2
inc edx
cmp edx, ebp
jle 0x495de0
mov dword [esp + 0x1c], ebx
jmp 0x495f3b
mov ecx, dword [esp + 0x174]
mov edx, 1
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x497b87
movzx eax, word [ebx]
mov ecx, 0x80
cmp ax, cx
jae case.default.0x4938d8
mov ecx, eax
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 1
je case.default.0x4938d8
inc edx
add ebx, 2
cmp edx, ebp
jle 0x495e47
mov dword [esp + 0x1c], ebx
jmp 0x495f3b
mov eax, dword [esp + 0x174]
mov edx, 1
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x497b87
movzx eax, word [ebx]
mov ecx, 0x80
cmp ax, cx
jae 0x495ec1
mov ecx, eax
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 0x10
jne case.default.0x4938d8
add ebx, 2
cmp ebx, esi
jae 0x495ee0
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x495ee0
add ebx, 2
inc edx
cmp edx, ebp
jle 0x495e96
mov dword [esp + 0x1c], ebx
jmp 0x495f3b
mov ecx, dword [esp + 0x174]
mov edx, 1
mov esi, dword [ecx + 0x7c]
nop dword [eax]
cmp ebx, esi
jae 0x497b87
movzx eax, word [ebx]
mov ecx, 0x80
cmp ax, cx
jae case.default.0x4938d8
mov ecx, eax
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 0x10
je case.default.0x4938d8
add ebx, 2
inc edx
mov dword [esp + 0x1c], ebx
cmp edx, ebp
jle 0x495f00
mov ecx, dword [esp + 0x174]
mov edx, dword [esp + 0x20]
cmp ebp, edx
je 0x491f60
cmp dword [esp + 0x18], 0
mov eax, dword [esp + 0x30]
jne 0x4982fb
mov esi, ebx
mov dword [esp + 0x18], esi
test eax, eax
js 0x4965fc
cmp eax, 8
ja case.default.0x493c12
jmp dword [eax*4 + 0x499bbc]
cmp ebp, edx
jge 0x4965de
mov edx, dword [ecx + 0x7c]
mov edi, dword [esp + 0x20]
nop word [eax + eax]
cmp ebx, edx
jae 0x495fcb
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
cmp dword [esp + 0x34], 0
movzx ecx, ax
jne 0x4965de
xor eax, eax
cmp cx, word [esp + 0x48]
sete al
inc ebp
lea ebx, [ebx + eax*2]
add ebx, 2
mov dword [esp + 0x1c], ebx
cmp ebp, edi
jl 0x495f90
jmp 0x4965de
mov ebp, dword [esp + 0x174]
mov eax, dword [ebp + 0x8c]
test eax, eax
je 0x4965e5
cmp ebx, dword [ebp + 0x88]
jbe 0x4965e5
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4991b3
jmp 0x4965e5
cmp ebp, edx
jge 0x4965de
mov esi, dword [ecx + 0x7c]
mov edi, dword [esp + 0x20]
mov edx, 1
cmp ebx, esi
jae 0x4960a4
movzx ecx, word [ebx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49604d
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4c0240]
mov al, byte [eax*8 + 0x4cbb41]
cmp al, 9
je 0x496080
cmp al, 5
je 0x496080
cmp al, 8
je 0x496080
xor eax, eax
jmp 0x496085
mov eax, 1
cmp eax, dword [esp + 0x34]
je 0x4965da
inc ebp
lea ebx, [ebx + edx*2]
mov dword [esp + 0x1c], ebx
cmp ebp, edi
jl 0x496010
jmp 0x4965da
mov ebp, dword [esp + 0x174]
mov eax, dword [ebp + 0x8c]
test eax, eax
je 0x4960c9
cmp ebx, dword [ebp + 0x88]
jbe 0x4960c9
mov dword [ebp + 0x64], edx
cmp eax, 1
jg 0x4991b3
mov esi, dword [esp + 0x18]
jmp 0x4965e5
cmp ebp, edx
jge 0x4965de
mov esi, dword [ecx + 0x7c]
mov edi, dword [esp + 0x44]
cmp ebx, esi
jae 0x49616f
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49611e
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
cmp dword [eax*4 + 0x4bfd60], edi
sete cl
cmp ecx, dword [esp + 0x34]
je 0x4965da
inc ebp
lea ebx, [ebx + edx*2]
mov dword [esp + 0x1c], ebx
cmp ebp, dword [esp + 0x20]
jl 0x4960e1
jmp 0x4965da
mov ebp, dword [esp + 0x174]
mov eax, dword [ebp + 0x8c]
test eax, eax
je 0x4960c9
cmp ebx, dword [ebp + 0x88]
jbe 0x4960c9
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4991b3
mov esi, dword [esp + 0x18]
jmp 0x4965e5
cmp ebp, edx
jge 0x4965de
mov esi, dword [ecx + 0x7c]
mov edi, dword [esp + 0x20]
cmp ebx, esi
jae 0x49616f
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4961f1
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
cmp eax, dword [esp + 0x44]
sete cl
cmp ecx, dword [esp + 0x34]
je 0x4965da
inc ebp
lea ebx, [ebx + edx*2]
mov dword [esp + 0x1c], ebx
cmp ebp, edi
jl 0x4961b8
jmp 0x4965da
cmp ebp, edx
jge 0x4965de
mov esi, dword [ecx + 0x7c]
mov edi, dword [esp + 0x20]
cmp ebx, esi
jae 0x49616f
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x496285
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb40]
cmp eax, dword [esp + 0x44]
sete cl
cmp ecx, dword [esp + 0x34]
je 0x4965da
inc ebp
lea ebx, [ebx + edx*2]
mov dword [esp + 0x1c], ebx
cmp ebp, edi
jl 0x496248
jmp 0x4965da
cmp ebp, edx
jge 0x4965de
mov esi, dword [ecx + 0x7c]
mov edi, dword [esp + 0x20]
nop dword [eax]
mov edx, 1
cmp ebx, esi
jae 0x4960a4
movzx ecx, word [ebx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49631d
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
mov eax, dword [eax*4 + 0x4bfd60]
cmp eax, 1
je 0x496356
cmp eax, 3
je 0x496356
xor eax, eax
jmp 0x49635b
mov eax, 1
cmp eax, dword [esp + 0x34]
je 0x4965da
inc ebp
lea ebx, [ebx + edx*2]
mov dword [esp + 0x1c], ebx
cmp ebp, edi
jl 0x4962e0
jmp 0x4965da
cmp ebp, edx
jge 0x4965de
mov edi, dword [ecx + 0x7c]
nop word [eax + eax]
mov esi, 1
cmp ebx, edi
jae 0x49643b
movzx edx, word [ebx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4963cd
movzx eax, word [ebx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov esi, 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ccc20]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
cmp dword [eax*4 + 0x4bfd60], 6
je 0x496415
cmp edx, 9
je 0x496415
cmp edx, 0xa
je 0x496415
cmp edx, 0xc
je 0x496415
cmp edx, 0xd
je 0x496415
xor eax, eax
jmp 0x49641a
mov eax, 1
cmp eax, dword [esp + 0x34]
je 0x4965da
inc ebp
lea ebx, [ebx + esi*2]
mov dword [esp + 0x1c], ebx
cmp ebp, dword [esp + 0x20]
jl 0x496390
jmp 0x4965da
mov ebp, dword [esp + 0x174]
mov eax, dword [ebp + 0x8c]
test eax, eax
je 0x4960c9
cmp ebx, dword [ebp + 0x88]
jbe 0x4960c9
mov dword [ebp + 0x64], esi
cmp eax, 1
jg 0x4991b3
mov esi, dword [esp + 0x18]
jmp 0x4965e5
cmp ebp, edx
jge 0x4965de
mov edi, dword [ecx + 0x7c]
nop dword [eax]
mov esi, 1
cmp ebx, edi
jae 0x49643b
movzx edx, word [ebx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4964b9
movzx eax, word [ebx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov esi, 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ccc20]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
cmp dword [eax*4 + 0x4bfd60], 6
je 0x496506
cmp edx, 9
je 0x496506
cmp edx, 0xa
je 0x496506
cmp edx, 0xb
je 0x496506
cmp edx, 0xc
je 0x496506
cmp edx, 0xd
je 0x496506
xor eax, eax
jmp 0x49650b
mov eax, 1
cmp eax, dword [esp + 0x34]
je 0x4965da
inc ebp
lea ebx, [ebx + esi*2]
mov dword [esp + 0x1c], ebx
cmp ebp, dword [esp + 0x20]
jl 0x496480
jmp 0x4965da
cmp ebp, edx
jge 0x4965de
mov edi, dword [ecx + 0x7c]
nop word [eax + eax]
mov esi, 1
cmp ebx, edi
jae 0x49643b
movzx edx, word [ebx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49657d
movzx eax, word [ebx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov esi, 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ccc20]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
mov eax, dword [eax*4 + 0x4bfd60]
cmp eax, 1
je 0x4965bd
cmp eax, 3
je 0x4965bd
cmp edx, 0x5f
je 0x4965bd
xor eax, eax
jmp 0x4965c2
mov eax, 1
cmp eax, dword [esp + 0x34]
je 0x4965da
inc ebp
lea ebx, [ebx + esi*2]
mov dword [esp + 0x1c], ebx
cmp ebp, dword [esp + 0x20]
jl 0x496540
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x174]
cmp dword [esp + 0x2c], 0
je 0x4980bb
mov edi, dword [esp + 0x170]
jmp 0x491f6e
cmp edi, 0x16
jne 0x49676a
cmp ebp, edx
jge 0x49671d
mov edi, dword [ecx + 0x7c]
cmp ebx, edi
jae 0x49673b
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49664d
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
cmp dword [eax*4 + 0x4bfd60], 2
je 0x496719
mov eax, dword [esp + 0x174]
lea ebx, [ebx + edx*2]
mov dword [esp + 0x1c], ebx
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x49670e
nop dword [eax + eax]
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4966d5
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
cmp dword [eax*4 + 0x4bfd60], 2
jne 0x49670a
lea ebx, [ebx + edx*2]
cmp ebx, esi
jb 0x4966a0
mov dword [esp + 0x1c], ebx
inc ebp
cmp ebp, dword [esp + 0x20]
jl 0x496610
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x174]
cmp dword [esp + 0x2c], 0
je 0x498151
mov edi, dword [esp + 0x170]
jmp 0x491f6e
mov ebp, dword [esp + 0x174]
mov eax, dword [ebp + 0x8c]
test eax, eax
je 0x496764
cmp ebx, dword [ebp + 0x88]
jbe 0x496764
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4991b3
mov esi, dword [esp + 0x18]
jmp 0x496724
lea eax, [edi - 6]
cmp eax, 0xf
ja case.default.0x493c12
jmp dword [eax*4 + 0x499be0]
cmp edx, 0x7fffffff
jge 0x496872
cmp ebp, edx
jge 0x496ad4
mov ecx, dword [ecx + 0x7c]
cmp ebx, ecx
jae 0x49683a
mov eax, dword [esp + 0x174]
mov edx, dword [eax + 0x18]
add eax, 0x1c
test edx, edx
je 0x496806
push 1
push eax
push ecx
mov ecx, ebx
call fcn.0049b350
add esp, 0xc
neg eax
sbb eax, eax
neg eax
jne 0x496ad4
mov ecx, dword [esp + 0x174]
add ebx, 2
mov dword [esp + 0x1c], ebx
cmp ebx, dword [ecx + 0x7c]
jae 0x4967fa
mov ax, word [ebx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4967fa
add ebx, 2
mov dword [esp + 0x1c], ebx
inc ebp
cmp ebp, dword [esp + 0x20]
jl 0x496791
jmp 0x496ad4
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja 0x4967cb
mov ecx, dword [esp + 0x174]
mov ax, word [ebx]
cmp ax, word [ecx + 0x2c]
jne 0x4967d2
cmp edx, 1
je 0x496ad4
mov ax, word [ebx + 2]
cmp ax, word [ecx + 0x2e]
je 0x496ad4
jmp 0x4967d2
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x496ad4
cmp ebx, dword [ecx + 0x88]
jbe 0x496ad4
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x4991b3
mov ebp, ecx
jmp 0x496adb
mov ecx, dword [ecx + 0x7c]
cmp ebx, ecx
jae 0x49683a
mov eax, dword [esp + 0x174]
mov edx, dword [eax + 0x18]
add eax, 0x1c
test edx, edx
je 0x4968e3
push 1
push eax
push ecx
mov ecx, ebx
call fcn.0049b350
add esp, 0xc
neg eax
sbb eax, eax
neg eax
jne 0x496ad4
mov ecx, dword [esp + 0x174]
add ebx, 2
mov dword [esp + 0x1c], ebx
cmp ebx, dword [ecx + 0x7c]
jae 0x4968d7
mov ax, word [ebx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4968d7
add ebx, 2
mov dword [esp + 0x1c], ebx
inc ebp
cmp ebp, dword [esp + 0x20]
jl 0x496872
jmp 0x496ad4
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja 0x4968a8
mov ecx, dword [esp + 0x174]
mov ax, word [ebx]
cmp ax, word [ecx + 0x2c]
jne 0x4968af
cmp edx, 1
je 0x496ad4
mov ax, word [ebx + 2]
cmp ax, word [ecx + 0x2e]
je 0x496ad4
jmp 0x4968af
cmp edx, 0x7fffffff
jge 0x496995
cmp ebp, edx
jge 0x496ad4
mov ecx, dword [ecx + 0x7c]
nop
cmp ebx, ecx
jae 0x49695f
add ebx, 2
mov dword [esp + 0x1c], ebx
cmp ebx, ecx
jae 0x496955
mov ax, word [ebx]
and ax, word [esp + 0x4c]
cmp ax, word [esp + 0x50]
jne 0x496955
add ebx, 2
mov dword [esp + 0x1c], ebx
inc ebp
cmp ebp, edx
jl 0x496930
jmp 0x496ad4
mov ebp, dword [esp + 0x174]
mov eax, dword [ebp + 0x8c]
test eax, eax
je 0x496adb
cmp ebx, dword [ebp + 0x88]
jbe 0x496adb
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4991b3
jmp 0x496adb
mov ebp, dword [esp + 0x174]
mov eax, dword [ebp + 0x8c]
mov ebx, dword [ebp + 0x7c]
mov dword [esp + 0x1c], ebx
test eax, eax
je 0x496adb
cmp ebx, dword [ebp + 0x88]
jbe 0x496adb
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4991b3
jmp 0x496adb
sub edx, ebp
mov ebp, dword [esp + 0x174]
mov ecx, dword [ebp + 0x7c]
mov eax, ecx
sub eax, ebx
sar eax, 1
cmp edx, eax
jbe 0x496a04
mov eax, dword [ebp + 0x8c]
mov ebx, ecx
mov dword [esp + 0x1c], ebx
test eax, eax
je 0x496adb
cmp ecx, dword [ebp + 0x88]
jmp 0x4969b7
lea ebx, [ebx + edx*2]
mov dword [esp + 0x1c], ebx
jmp 0x496adb
cmp ebp, edx
jge 0x496ad4
mov esi, dword [ecx + 0x7c]
nop dword [eax + eax]
cmp ebx, esi
jae 0x496af2
movzx ecx, word [ebx]
lea edx, [ebx + 2]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x496a5c
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, 4
add ecx, 0x10000
jmp 0x496a61
mov eax, 2
cmp ecx, 0xd
jne 0x496a83
mov ebx, edx
mov dword [esp + 0x1c], ebx
cmp edx, esi
jae 0x496ad0
cmp word [ebx], 0xa
jne 0x496ac5
lea ebx, [edx + 2]
jmp 0x496ac1
cmp ecx, 0xa
je 0x496abf
mov edx, dword [esp + 0x174]
cmp dword [edx + 0x68], 0
jne 0x496ff8
cmp ecx, 0xb
je 0x496abf
cmp ecx, 0xc
je 0x496abf
cmp ecx, 0x85
je 0x496abf
cmp ecx, 0x2028
je 0x496abf
cmp ecx, 0x2029
jne 0x496ff8
add ebx, eax
mov dword [esp + 0x1c], ebx
inc ebp
cmp ebp, dword [esp + 0x20]
jl 0x496a20
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x174]
cmp dword [esp + 0x2c], 0
je 0x49824b
mov edi, dword [esp + 0x170]
jmp 0x491f6e
mov ebp, dword [esp + 0x174]
mov eax, dword [ebp + 0x8c]
test eax, eax
je 0x496b1b
cmp ebx, dword [ebp + 0x88]
jbe 0x496b1b
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4991b3
mov esi, dword [esp + 0x18]
jmp 0x496adb
cmp ebp, edx
jge 0x496ad4
mov esi, dword [ecx + 0x7c]
nop dword [eax + eax]
mov edx, 1
cmp ebx, esi
jae 0x496c02
movzx ecx, word [ebx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x496b6d
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x2000
ja 0x496bd8
je case.0x496bf4.8193
cmp ecx, 0xa0
ja 0x496bc8
je case.0x496bf4.8193
cmp ecx, 9
je case.0x496bf4.8193
cmp ecx, 0x20
je case.0x496bf4.8193
xor ecx, ecx
xor eax, eax
cmp edi, 0x12
sete al
cmp ecx, eax
je 0x496ad0
inc ebp
lea ebx, [ebx + edx*2]
mov dword [esp + 0x1c], ebx
cmp ebp, dword [esp + 0x20]
jl 0x496b30
jmp 0x496ad0
cmp ecx, 0x1680
je case.0x496bf4.8193
cmp ecx, 0x180e
jmp 0x496b99
cmp ecx, 0x3000
ja case.0x496bf4.8203
je case.0x496bf4.8193
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x496bf4.8203
movzx eax, byte [ecx + 0x499c28]
jmp dword [eax*4 + 0x499c20]
mov ecx, 1
jmp 0x496ba1
mov ebp, dword [esp + 0x174]
mov eax, dword [ebp + 0x8c]
test eax, eax
je 0x496b1b
cmp ebx, dword [ebp + 0x88]
jbe 0x496b1b
mov dword [ebp + 0x64], edx
cmp eax, 1
jg 0x4991b3
mov esi, dword [esp + 0x18]
jmp 0x496adb
cmp ebp, edx
jge 0x496ad4
mov esi, dword [ecx + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x496c02
movzx ecx, word [ebx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x496c7c
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x85
ja 0x496c95
je case.0x496c8e.10
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x496c8e
jmp dword [ecx*4 + 0x499c88]
sub ecx, 0x2028
je case.0x496c8e.10
sub ecx, 1
je case.0x496c8e.10
xor ecx, ecx
jmp 0x496cab
mov ecx, 1
xor eax, eax
cmp edi, 0x14
sete al
cmp ecx, eax
je 0x496ad0
inc ebp
lea ebx, [ebx + edx*2]
mov dword [esp + 0x1c], ebx
cmp ebp, dword [esp + 0x20]
jl 0x496c43
jmp 0x496ad0
cmp ebp, edx
jge 0x496ad4
mov esi, dword [ecx + 0x7c]
nop dword [eax]
cmp ebx, esi
jae 0x496af2
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x496d1d
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x496d39
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 4
jne 0x496ad0
inc ebp
lea ebx, [ebx + edx*2]
mov dword [esp + 0x1c], ebx
cmp ebp, dword [esp + 0x20]
jl 0x496ce0
jmp 0x496ad0
cmp ebp, edx
jge 0x496ad4
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x496af2
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x496d94
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x496ad0
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 4
je 0x496ad0
inc ebp
lea ebx, [ebx + edx*2]
mov dword [esp + 0x1c], ebx
cmp ebp, dword [esp + 0x20]
jl 0x496d57
jmp 0x496ad0
cmp ebp, edx
jge 0x496ad4
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x496af2
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x496e0f
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x496e2b
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 1
jne 0x496ad0
inc ebp
lea ebx, [ebx + edx*2]
mov dword [esp + 0x1c], ebx
cmp ebp, dword [esp + 0x20]
jl 0x496dd2
jmp 0x496ad0
cmp ebp, edx
jge 0x496ad4
mov esi, dword [ecx + 0x7c]
nop dword [eax]
cmp ebx, esi
jae 0x496af2
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x496e8d
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x496ad0
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 1
je 0x496ad0
inc ebp
lea ebx, [ebx + edx*2]
mov dword [esp + 0x1c], ebx
cmp ebp, dword [esp + 0x20]
jl 0x496e50
jmp 0x496ad0
cmp ebp, edx
jge 0x496ad4
mov esi, dword [ecx + 0x7c]
nop dword [eax + eax]
cmp ebx, esi
jae 0x496af2
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x496f0d
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x496f29
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 0x10
jne 0x496ad0
inc ebp
lea ebx, [ebx + edx*2]
mov dword [esp + 0x1c], ebx
cmp ebp, dword [esp + 0x20]
jl 0x496ed0
jmp 0x496ad0
cmp ebp, edx
jge 0x496ad4
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x496fb7
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x496f84
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x496ad0
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 0x10
je 0x496ad0
inc ebp
lea ebx, [ebx + edx*2]
mov dword [esp + 0x1c], ebx
cmp ebp, dword [esp + 0x20]
jl 0x496f47
jmp 0x496ad0
mov ebp, dword [esp + 0x174]
mov eax, dword [ebp + 0x8c]
test eax, eax
je 0x496b1b
cmp ebx, dword [ebp + 0x88]
jbe 0x496b1b
mov dword [ebp + 0x64], 1
cmp eax, 1
jle 0x496b1b
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov esi, dword [esp + 0x18]
mov ebp, edx
jmp 0x496adb
cmp ecx, 0x74
mov ecx, ebx
jne 0x49704a
mov eax, dword [esp + 0x17c]
inc eax
push eax
push dword [esp + 0x17c]
push edx
push dword [esp + 0x17c]
lea edx, [esi + 4]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov esi, ebp
mov ebp, dword [esp + 0x174]
jmp 0x49724b
mov dword [edx + 0x9c], 2
mov eax, dword [esp + 0x17c]
inc eax
push eax
push dword [esp + 0x17c]
push edx
push dword [esp + 0x17c]
mov edx, ebp
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov ebp, dword [esp + 0x174]
add esi, 4
jmp 0x49724b
mov eax, dword [esi + 0x90]
mov edx, dword [esp + 0x170]
cmp eax, edx
mov ecx, dword [esp + 0x14]
cmovg edx, eax
mov dword [esp + 0x170], edx
movzx eax, word [ecx + 6]
lea ecx, [ecx + eax*2]
add ecx, 4
cmp word [ecx], 0x71
jne 0x4970e3
mov edx, ecx
movzx eax, word [ecx + 2]
cmp word [edx + eax*2], 0x71
lea ecx, [edx + eax*2]
mov edx, ecx
je 0x4970c3
jmp 0x4970dc
mov esi, dword [esp + 0x174]
mov edx, dword [esp + 0x170]
add ecx, 4
cmp dword [esp + 0x20], 0x86
mov dword [esp + 0x14], ecx
je 0x497376
mov ebp, dword [esp + 0x174]
mov esi, ecx
jmp 0x49724f
cmp eax, 0x75
je 0x4974da
cmp eax, 0x74
jne 0x49716f
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
push eax
push dword [esp + 0x17c]
push edx
push edi
push dword [esp + 0x17c]
lea edx, [esi + 4]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
movzx eax, word [ebp]
cmp eax, 0x7b
je 0x497459
mov ecx, 0x82
cmp ax, cx
jae 0x497418
mov esi, ebp
mov ebp, dword [esp + 0x174]
jmp 0x49724b
mov eax, 0x82
cmp word [ebp], ax
jb 0x497184
mov dword [edx + 0x9c], 2
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
push eax
push dword [esp + 0x17c]
push edx
push edi
push dword [esp + 0x17c]
mov edx, ebp
call fcn.00491e70
add esp, 0x14
cmp eax, 0xfffffc1c
jne 0x4971c5
mov esi, dword [esp + 0x174]
cmp dword [esi + 0xb8], ebp
jne 0x497264
jmp 0x4971d4
test eax, eax
jne 0x497264
mov esi, dword [esp + 0x174]
mov ecx, dword [esp + 0x14]
add ecx, 4
cmp word [ebp], 0x7b
mov dword [esp + 0x14], ecx
je 0x497497
mov ebp, dword [esp + 0x174]
mov esi, ecx
jmp 0x49724f
movzx ebp, word [esi + 4]
mov edi, dword [esp + 0x174]
lea eax, [ebp*2]
cmp eax, dword [edi + 0x14]
jl 0x4991c3
mov ebp, dword [esp + 0x174]
nop word [eax + eax]
cmp edx, 0x82
jae 0x49726f
cmp edx, 0x7b
je 0x49726f
cmp dword [ebp + 0x6c], 0
jne 0x497279
movzx eax, word [esi + 2]
cmp word [esi + eax*2], 0x71
je 0x497279
movzx eax, cx
movzx eax, byte [eax + 0x4bfdd8]
lea esi, [esi + eax*2]
mov dword [esp + 0x14], esi
mov eax, dword [ebp]
cmp eax, dword [ebp + 4]
jb 0x491f11
inc eax
mov dword [ebp], eax
mov eax, 0xfffffff8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov dword [ebp + 0x9c], 2
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edi, dword [esp + 0x14]
inc eax
mov esi, dword [ebp + 0xb0]
push eax
push dword [esp + 0x17c]
movzx eax, word [edi]
push ebp
push dword [esp + 0x17c]
movzx eax, byte [eax + 0x4bfdd8]
push dword [esp + 0x17c]
lea edx, [edi + eax*2]
call fcn.00491e70
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc20
jne 0x4972e8
movzx ecx, word [edi + 2]
lea eax, [edi + ecx*2]
cmp dword [ebp + 0x80], eax
jae 0x499363
cmp word [edi], 0x71
je 0x4972f0
cmp word [eax], 0x71
jne 0x499363
jmp 0x4972f0
test edx, edx
jne 0x499327
movzx eax, word [edi + 2]
mov dword [ebp + 0xb0], esi
lea edi, [edi + eax*2]
mov esi, edi
mov dword [esp + 0x14], edi
cmp word [esi], 0x71
jne case.default.0x4938d8
mov edx, dword [esp + 0x20]
mov ecx, 0x71
jmp 0x497220
mov eax, dword [esp + 0x17c]
inc eax
push eax
push dword [esp + 0x17c]
movzx eax, word [esi + 2]
add ecx, eax
push ebp
push edi
push dword [esp + 0x17c]
lea edx, [esi + ecx*2]
mov ecx, ebx
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x49735d
cmp eax, 0xfffffc1d
je 0x49735d
cmp eax, 0xfffffc20
jne 0x497264
lea eax, [esi + 4]
mov dword [ebp + 0x80], eax
mov eax, 0xfffffc1f
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov dword [esi + 0x9c], 2
mov eax, dword [esp + 0x17c]
inc eax
push eax
push dword [esp + 0x17c]
push esi
push edx
push dword [esp + 0x17c]
mov edx, ecx
mov ecx, ebx
call fcn.00491e70
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, 0xffffffe6
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0xf0]
cmp eax, ecx
je 0x4973d8
push eax
call fcn.0049f222
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, 0xfffffffa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x16c]
mov dword [edx + 0x84], ebx
mov dword [edx + 0x80], eax
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ecx, dword [esp + 0x174]
mov edx, ebp
mov dword [ecx + 0x9c], 2
mov eax, dword [esp + 0x17c]
inc eax
push eax
push dword [esp + 0x17c]
push ecx
push edi
push dword [esp + 0x17c]
mov ecx, ebx
call fcn.00491e70
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edx, ebp
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push edi
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x497523
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edx, ecx
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
push esi
push edi
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov dword [esi + 0xb8], ebp
mov eax, 0xfffffc1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov dword [edx + 0x84], ebx
mov eax, 0xfffffc1b
mov dword [edx + 0x90], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
push eax
push dword [esp + 0x17c]
push edx
push edi
push dword [esp + 0x17c]
mov edx, esi
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov eax, dword [esp + 0x174]
mov dword [eax + 0xb8], ebp
mov eax, 0xfffffc1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x16c]
mov dword [eax + 0x84], ebx
mov dword [eax + 0x90], edi
mov dword [eax + 0x80], ecx
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [ebp + 0x8c]
test eax, eax
je case.default.0x4938d8
cmp ebx, dword [ebp + 0x88]
jbe case.default.0x4938d8
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4991b3
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esi + 0x8c]
test eax, eax
je case.default.0x4938d8
cmp ebx, dword [esi + 0x7c]
jb case.default.0x4938d8
jmp 0x4980a3
mov edi, ebx
cmp esi, eax
jge 0x497621
nop dword [eax]
push edx
push dword [esp + 0x178]
mov edx, ebx
push ebp
call fcn.00491cc0
add esp, 0xc
test eax, eax
js 0x4975eb
mov ecx, dword [esp + 0x38]
lea ebx, [ebx + eax*2]
mov edx, dword [esp + 0x40]
inc esi
cmp esi, dword [esp + 0x24]
jl 0x4975c0
jmp 0x497619
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x497619
cmp ebx, dword [ecx + 0x7c]
jb 0x497619
cmp ebx, dword [ecx + 0x88]
jbe 0x497619
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x4991b3
cmp ebx, edi
jb case.default.0x4938d8
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov eax, ebp
neg eax
lea ebx, [ebx + eax*2]
cmp ebx, edi
jae 0x497621
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
test byte [edx + ebp], al
je case.default.0x4938d8
mov ecx, dword [esp + 0x174]
mov eax, dword [esp + 0x17c]
inc edi
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov esi, edi
push ecx
push dword [esp + 0x17c]
mov ecx, ebx
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x494212
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ebp, ebx
cmp edi, eax
jge 0x497744
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x24]
mov edi, dword [eax + 0x7c]
nop
cmp ebx, edi
jae 0x49781a
movzx edx, word [ebx]
mov esi, 1
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49772d
movzx eax, word [ebx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov esi, 2
add edx, 0x10000
cmp edx, 0xff
jbe 0x4977e1
cmp dword [esp + 0x20], 0x6a
jne 0x497801
mov esi, dword [esp + 0x174]
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edi, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, edi
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, ebp
je case.default.0x4938d8
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4977a7
add ebx, 0xfffffffe
mov eax, dword [esp + 0x17c]
mov edx, edi
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x497782
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [esp + 0x3c]
test byte [edx + ecx], al
je 0x497744
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
lea ebx, [ebx + esi*2]
inc eax
mov dword [esp + 0x28], eax
cmp eax, ecx
jl 0x4976f0
jmp 0x497744
mov esi, dword [esp + 0x174]
mov eax, dword [esi + 0x8c]
test eax, eax
je 0x49774b
cmp ebx, dword [esi + 0x88]
jbe 0x49774b
mov dword [esi + 0x64], 1
cmp eax, 1
jg 0x4991b3
jmp 0x49774b
mov ebp, ebx
cmp edi, eax
jge 0x4978c1
nop word [eax + eax]
mov esi, dword [esp + 0x174]
cmp ebx, dword [esi + 0x7c]
jae 0x49795f
movzx ecx, word [ebx]
mov esi, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4978a5
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov edx, dword [esp + 0x3c]
push 1
call fcn.0049b500
add esp, 4
test eax, eax
je 0x4978c1
inc edi
lea ebx, [ebx + esi*2]
cmp edi, dword [esp + 0x24]
jl 0x497860
mov esi, dword [esp + 0x174]
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edi, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, edi
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
nop
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, ebp
je case.default.0x4938d8
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x497925
add ebx, 0xfffffffe
mov eax, dword [esp + 0x17c]
mov edx, edi
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x497900
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esi + 0x8c]
test eax, eax
je 0x4978c8
cmp ebx, dword [esi + 0x88]
jbe 0x4978c8
mov dword [esi + 0x64], 1
cmp eax, 1
jg 0x4991b3
jmp 0x4978c8
mov eax, dword [ebp + 0x8c]
test eax, eax
je case.default.0x4938d8
cmp ebx, ecx
jb case.default.0x4938d8
jmp 0x49757a
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je case.default.0x4938d8
cmp ebx, dword [ecx + 0x7c]
jb case.default.0x4938d8
cmp ebx, dword [ecx + 0x88]
jbe case.default.0x4938d8
mov dword [ecx + 0x64], 1
jmp 0x497589
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov ebp, dword [esp + 0x174]
inc eax
mov edx, dword [esp + 0x14]
push eax
push dword [esp + 0x17c]
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov esi, edi
nop dword [eax]
cmp esi, dword [esp + 0x24]
jge case.default.0x4938d8
mov ebp, dword [ebp + 0x7c]
lea eax, [ebp - 4]
cmp ebx, eax
ja 0x497a9b
mov eax, dword [esp + 0x40]
mov ecx, ebx
mov edx, dword [esp + 0x30]
lea esi, [eax + eax]
sub esi, 4
jb 0x497a61
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x497a66
add ecx, 4
add edx, 4
sub esi, 4
jae 0x497a50
cmp esi, 0xfffffffc
je 0x497a93
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x497a9b
cmp esi, 0xfffffffd
je 0x497a93
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x497a9b
cmp esi, 0xfffffffe
je 0x497a93
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x497a9b
cmp esi, 0xffffffff
je 0x497a93
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x497a9b
add ebx, 4
jmp 0x497b1d
mov ecx, dword [esp + 0x38]
test ecx, ecx
jle 0x497b6b
lea edi, [ecx + ecx]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x497b6b
lea esi, [ecx + ecx]
mov ecx, ebx
lea edx, [esp + 0x74]
sub esi, 4
jb 0x497ad5
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x497ada
add ecx, 4
add edx, 4
sub esi, 4
jae 0x497ac4
cmp esi, 0xfffffffc
je 0x497b17
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x497b6b
cmp esi, 0xfffffffd
je 0x497b17
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x497b6b
cmp esi, 0xfffffffe
je 0x497b17
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x497b6b
cmp esi, 0xffffffff
je 0x497b17
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x497b6b
add ebx, edi
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x17c]
inc edi
mov ebp, dword [esp + 0x174]
inc eax
mov edx, dword [esp + 0x14]
mov ecx, ebx
push eax
push dword [esp + 0x17c]
mov dword [esp + 0x30], edi
mov esi, edi
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x497a20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je case.default.0x4938d8
cmp ebx, ebp
jmp 0x4979c1
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je case.default.0x4938d8
jmp 0x4979c7
cmp ebx, edi
jb case.default.0x4938d8
nop dword [eax]
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
sub ebx, 2
test eax, eax
jne 0x497264
cmp ebx, edi
jae 0x497bb0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
cmp edi, dword [esp + 0x24]
jge case.default.0x4938d8
mov ecx, dword [esp + 0x174]
cmp ebx, dword [ecx + 0x7c]
jae 0x497b8e
movzx eax, word [ebx]
cmp esi, eax
je 0x497c5b
cmp ebp, eax
jne case.default.0x4938d8
mov eax, dword [esp + 0x28]
add ebx, 2
mov edx, dword [esp + 0x14]
inc eax
mov dword [esp + 0x28], eax
mov edi, eax
mov eax, dword [esp + 0x17c]
inc eax
push eax
push dword [esp + 0x17c]
push ecx
push dword [esp + 0x17c]
mov ecx, ebx
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x497c32
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
cmp ebx, edi
jb case.default.0x4938d8
nop dword [eax]
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
sub ebx, 2
test eax, eax
jne 0x497264
cmp ebx, edi
jae 0x497cb0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edx, ecx
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov ecx, edi
cmp edi, ebp
jge case.default.0x4938d8
mov edx, dword [esp + 0x174]
cmp ebx, dword [edx + 0x7c]
jae 0x497d99
movzx eax, word [ebx]
add ebx, 2
cmp esi, eax
jne case.default.0x4938d8
mov eax, dword [esp + 0x17c]
lea edi, [ecx + 1]
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
push edx
push dword [esp + 0x17c]
mov edx, dword [esp + 0x24]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
mov ecx, edi
test eax, eax
je 0x497d32
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [edx + 0x8c]
test eax, eax
je case.default.0x4938d8
cmp ebx, dword [edx + 0x88]
jbe case.default.0x4938d8
mov dword [edx + 0x64], 1
jmp 0x497589
mov eax, dword [esp + 0x17c]
mov edx, esi
inc eax
push eax
push dword [esp + 0x17c]
push ecx
push edi
push dword [esp + 0x17c]
mov ecx, ebx
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
nop dword [eax]
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, ebp
je case.default.0x4938d8
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x497e15
add ebx, 0xfffffffe
mov eax, dword [esp + 0x17c]
mov edx, esi
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push edi
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x497df0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edx, esi
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov esi, edi
nop word [eax + eax]
cmp esi, dword [esp + 0x28]
jge case.default.0x4938d8
mov edx, dword [esp + 0x174]
cmp ebx, dword [edx + 0x7c]
jae 0x497d99
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x497eda
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ebx, 2
add ecx, 0x10000
cmp dword [esp + 0x24], ecx
je case.default.0x4938d8
cmp ebp, ecx
je case.default.0x4938d8
mov eax, dword [esp + 0x17c]
inc edi
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
mov esi, edi
push edx
push dword [esp + 0x17c]
mov edx, dword [esp + 0x24]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x497e90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edx, esi
inc eax
push eax
push dword [esp + 0x17c]
push ecx
push edi
push dword [esp + 0x17c]
mov ecx, ebx
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
nop dword [eax]
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, ebp
je case.default.0x4938d8
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x497f85
add ebx, 0xfffffffe
mov eax, dword [esp + 0x17c]
mov edx, esi
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push edi
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x497f60
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edx, esi
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov esi, edi
nop word [eax + eax]
cmp esi, dword [esp + 0x28]
jge case.default.0x4938d8
mov edx, dword [esp + 0x174]
cmp ebx, dword [edx + 0x7c]
jae 0x497d99
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49804a
movzx eax, word [ebx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ebx, 2
add ecx, 0x10000
cmp ebp, ecx
je case.default.0x4938d8
mov eax, dword [esp + 0x17c]
inc edi
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
mov esi, edi
push edx
push dword [esp + 0x17c]
mov edx, dword [esp + 0x24]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x498000
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esi + 0x8c]
test eax, eax
je case.default.0x4938d8
cmp ebx, dword [esi + 0x88]
jbe case.default.0x4938d8
mov dword [esi + 0x64], 1
jmp 0x497589
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edi, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, edi
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, esi
je case.default.0x4938d8
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x498117
add ebx, 0xfffffffe
mov eax, dword [esp + 0x17c]
mov edx, edi
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x4980f2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edi, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, edi
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, esi
je case.default.0x4938d8
movzx eax, word [ebx]
mov edx, ebx
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x4981af
movzx ecx, word [edx - 2]
lea ebx, [edx - 2]
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4981da
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
cmp dword [eax*4 + 0x4bfd60], 2
jne 0x49820d
sub ebx, 2
jmp 0x498195
mov eax, dword [esp + 0x17c]
mov edx, edi
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x498188
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
lea ecx, [ebx - 2]
cmp ebx, esi
je case.default.0x4938d8
mov ax, word [ecx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4982a3
add ecx, 0xfffffffe
mov ebx, ecx
cmp edi, 0x11
jne 0x4982bf
cmp ecx, esi
jbe 0x4982bf
cmp word [ecx], 0xa
jne 0x4982bf
cmp word [ecx - 2], 0xd
lea eax, [ecx - 2]
cmove ebx, eax
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x498280
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
test eax, eax
js 0x498c55
cmp eax, 8
ja case.default.0x493c12
jmp dword [eax*4 + 0x499c98]
mov eax, dword [esp + 0x17c]
mov edi, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, edi
push ecx
push dword [esp + 0x17c]
mov ecx, ebx
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov esi, ebp
nop dword [eax]
mov ecx, ebx
cmp esi, dword [esp + 0x20]
jge case.default.0x4938d8
mov edx, dword [esp + 0x174]
cmp ebx, dword [edx + 0x7c]
jae 0x497d99
movzx eax, word [ebx]
add ebx, 2
and eax, 0xfc00
cmp eax, 0xd800
jne 0x498381
lea ebx, [ecx + 4]
cmp dword [esp + 0x34], 0
jne case.default.0x4938d8
mov eax, dword [esp + 0x17c]
inc ebp
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
mov esi, ebp
push edx
push dword [esp + 0x17c]
mov edx, edi
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x498350
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edi, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, edi
push ecx
push dword [esp + 0x17c]
mov ecx, ebx
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov esi, ebp
cmp esi, dword [esp + 0x20]
jge case.default.0x4938d8
mov edx, dword [esp + 0x174]
cmp ebx, dword [edx + 0x7c]
jae 0x497d99
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49844c
movzx eax, word [ebx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ebx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4c0240]
mov al, byte [eax*8 + 0x4cbb41]
cmp al, 9
je 0x49847f
cmp al, 5
je 0x49847f
cmp al, 8
je 0x49847f
xor eax, eax
jmp 0x498484
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.default.0x4938d8
mov eax, dword [esp + 0x17c]
inc ebp
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
mov esi, ebp
push edx
push dword [esp + 0x17c]
mov edx, edi
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x498402
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edi, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, edi
push ecx
push dword [esp + 0x17c]
mov ecx, ebx
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov esi, ebp
nop dword [eax + eax]
cmp esi, dword [esp + 0x20]
jge case.default.0x4938d8
mov edx, dword [esp + 0x174]
cmp ebx, dword [edx + 0x7c]
jae 0x497d99
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49855a
movzx eax, word [ebx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ebx, 2
add ecx, 0x10000
mov esi, dword [esp + 0x44]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
cmp dword [eax*4 + 0x4bfd60], esi
sete cl
cmp ecx, dword [esp + 0x34]
je case.default.0x4938d8
mov eax, dword [esp + 0x17c]
inc ebp
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
mov esi, ebp
push edx
push dword [esp + 0x17c]
mov edx, edi
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x498510
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edi, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, edi
push ecx
push dword [esp + 0x17c]
mov ecx, ebx
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov esi, ebp
cmp esi, dword [esp + 0x20]
jge case.default.0x4938d8
mov edx, dword [esp + 0x174]
cmp ebx, dword [edx + 0x7c]
jae 0x497d99
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49865c
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ebx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
cmp eax, dword [esp + 0x44]
sete cl
cmp ecx, dword [esp + 0x34]
je case.default.0x4938d8
mov eax, dword [esp + 0x17c]
inc ebp
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
mov esi, ebp
push edx
push dword [esp + 0x17c]
mov edx, edi
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x498612
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edi, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, edi
push ecx
push dword [esp + 0x17c]
mov ecx, ebx
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov esi, ebp
nop dword [eax]
cmp esi, dword [esp + 0x20]
jge case.default.0x4938d8
mov edx, dword [esp + 0x174]
cmp ebx, dword [edx + 0x7c]
jae 0x497d99
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49875a
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ebx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb40]
cmp eax, dword [esp + 0x44]
sete cl
cmp ecx, dword [esp + 0x34]
je case.default.0x4938d8
mov eax, dword [esp + 0x17c]
inc ebp
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
mov esi, ebp
push edx
push dword [esp + 0x17c]
mov edx, edi
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x498710
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edi, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, edi
push ecx
push dword [esp + 0x17c]
mov ecx, ebx
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov esi, ebp
nop dword [eax + eax]
cmp esi, dword [esp + 0x20]
jge case.default.0x4938d8
mov edx, dword [esp + 0x174]
cmp ebx, dword [edx + 0x7c]
jae 0x497d99
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49885a
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ebx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
mov eax, dword [eax*4 + 0x4bfd60]
cmp eax, 1
je 0x498893
cmp eax, 3
je 0x498893
xor eax, eax
jmp 0x498898
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.default.0x4938d8
mov eax, dword [esp + 0x17c]
inc ebp
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
mov esi, ebp
push edx
push dword [esp + 0x17c]
mov edx, edi
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x498810
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
push ecx
push dword [esp + 0x17c]
mov ecx, ebx
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov edi, dword [esp + 0x174]
mov esi, ebp
cmp esi, dword [esp + 0x20]
jge case.default.0x4938d8
cmp ebx, dword [edi + 0x7c]
jae 0x4989fe
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x498964
movzx eax, word [ebx]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add ebx, 2
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ccc20]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
cmp dword [eax*4 + 0x4bfd60], 6
je 0x4989ac
cmp edx, 9
je 0x4989ac
cmp edx, 0xa
je 0x4989ac
cmp edx, 0xc
je 0x4989ac
cmp edx, 0xd
je 0x4989ac
xor eax, eax
jmp 0x4989b1
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.default.0x4938d8
mov eax, dword [esp + 0x17c]
inc ebp
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov ecx, ebx
mov esi, ebp
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x498921
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [edi + 0x8c]
test eax, eax
je case.default.0x4938d8
cmp ebx, dword [edi + 0x88]
jbe case.default.0x4938d8
mov dword [edi + 0x64], 1
jmp 0x497589
mov eax, dword [esp + 0x17c]
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
push ecx
push dword [esp + 0x17c]
mov ecx, ebx
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov edi, dword [esp + 0x174]
mov esi, ebp
cmp esi, dword [esp + 0x20]
jge case.default.0x4938d8
cmp ebx, dword [edi + 0x7c]
jae 0x4989fe
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x498aa1
movzx eax, word [ebx]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add ebx, 2
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ccc20]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
cmp dword [eax*4 + 0x4bfd60], 6
je 0x498aee
cmp edx, 9
je 0x498aee
cmp edx, 0xa
je 0x498aee
cmp edx, 0xb
je 0x498aee
cmp edx, 0xc
je 0x498aee
cmp edx, 0xd
je 0x498aee
xor eax, eax
jmp 0x498af3
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.default.0x4938d8
mov eax, dword [esp + 0x17c]
inc ebp
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov ecx, ebx
mov esi, ebp
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x498a62
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
push ecx
push dword [esp + 0x17c]
mov ecx, ebx
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
jne 0x497264
mov edi, dword [esp + 0x174]
mov esi, ebp
nop
cmp esi, dword [esp + 0x20]
jge case.default.0x4938d8
cmp ebx, dword [edi + 0x7c]
jae 0x4989fe
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x498bc3
movzx eax, word [ebx]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add ebx, 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ccc20]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
mov eax, dword [eax*4 + 0x4bfd60]
cmp eax, 1
je 0x498c03
cmp eax, 3
je 0x498c03
cmp edx, 0x5f
je 0x498c03
xor eax, eax
jmp 0x498c08
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.default.0x4938d8
mov eax, dword [esp + 0x17c]
inc ebp
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov ecx, ebx
mov esi, ebp
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x498b80
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
push ecx
push dword [esp + 0x17c]
mov ecx, ebx
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
cmp edi, 0x16
jne 0x498dce
test eax, eax
jne 0x497264
mov edi, dword [esp + 0x174]
mov esi, ebp
nop dword [eax]
cmp esi, dword [esp + 0x20]
jge case.default.0x4938d8
mov esi, dword [edi + 0x7c]
cmp ebx, esi
jae 0x4989fe
movzx ecx, word [ebx]
lea edx, [ebx + 2]
mov eax, ecx
mov ebx, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x498ce7
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
cmp dword [eax*4 + 0x4bfd60], 2
je case.default.0x4938d8
cmp ebx, esi
jae 0x498d8b
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x498d56
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ccc20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4c0240]
movzx eax, byte [eax*8 + 0x4cbb41]
cmp dword [eax*4 + 0x4bfd60], 2
jne 0x498d8b
lea ebx, [ebx + edx*2]
cmp ebx, esi
jb 0x498d21
mov eax, dword [esp + 0x17c]
inc ebp
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov ecx, ebx
mov esi, ebp
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x498ca0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
test eax, eax
jne 0x497264
mov esi, ebp
nop dword [eax + eax]
cmp esi, dword [esp + 0x20]
jge case.default.0x4938d8
mov ecx, dword [esp + 0x174]
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x499189
mov edx, esi
cmp edi, 0xc
jne 0x498e6b
mov edx, dword [ecx + 0x18]
add ecx, 0x1c
test edx, edx
je 0x498e2d
push 1
push ecx
push esi
mov ecx, ebx
call fcn.0049b350
add esp, 0xc
neg eax
sbb eax, eax
neg eax
jne case.default.0x4938d8
jmp 0x498e5f
mov ecx, dword [ecx]
lea eax, [ecx + ecx]
sub esi, eax
cmp ebx, esi
ja 0x498e5f
mov edx, dword [esp + 0x174]
mov ax, word [ebx]
cmp ax, word [edx + 0x2c]
jne 0x498e5f
cmp ecx, 1
je case.default.0x4938d8
mov ax, word [ebx + 2]
cmp ax, word [edx + 0x2e]
je case.default.0x4938d8
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
mov edx, esi
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x498e9d
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
mov esi, edx
add ecx, 0x10000
add ebx, 2
lea eax, [edi - 6]
cmp eax, 0xf
ja case.default.0x493c12
jmp dword [eax*4 + 0x499cbc]
cmp ecx, 0x85
ja 0x498ee7
je case.0x498ec6.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4938d8
jmp dword [ecx*4 + 0x499cfc]
cmp ebx, esi
jae case.0x498ea9.12
cmp word [ebx], 0xa
jne case.0x498ea9.12
add ebx, 2
jmp case.0x498ea9.12
sub ecx, 0x2028
je case.0x498ec6.11
sub ecx, 1
jne case.default.0x4938d8
mov eax, dword [esp + 0x174]
cmp dword [eax + 0x68], 0
jne case.default.0x4938d8
jmp case.0x498ea9.12
cmp ecx, 0x2000
ja 0x498f52
je case.default.0x4938d8
cmp ecx, 0xa0
ja 0x498f3b
je case.default.0x4938d8
cmp ecx, 9
je case.default.0x4938d8
cmp ecx, 0x20
jmp 0x49912a
cmp ecx, 0x1680
je case.default.0x4938d8
cmp ecx, 0x180e
jmp 0x49912a
cmp ecx, 0x3000
ja case.0x498ea9.12
je case.default.0x4938d8
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x498ea9.12
movzx eax, byte [ecx + 0x499d14]
jmp dword [eax*4 + 0x499d0c]
cmp ecx, 0x2000
ja 0x498fd1
je case.0x498ea9.12
cmp ecx, 0xa0
ja 0x498fb4
je case.0x498ea9.12
cmp ecx, 9
je case.0x498ea9.12
cmp ecx, 0x20
jne case.default.0x4938d8
jmp case.0x498ea9.12
cmp ecx, 0x1680
je case.0x498ea9.12
cmp ecx, 0x180e
jne case.default.0x4938d8
jmp case.0x498ea9.12
cmp ecx, 0x3000
ja case.default.0x4938d8
je case.0x498ea9.12
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x4938d8
movzx eax, byte [ecx + 0x499d7c]
jmp dword [eax*4 + 0x499d74]
cmp ecx, 0x85
ja 0x499021
je case.default.0x4938d8
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x498ea9.12
jmp dword [ecx*4 + 0x499ddc]
sub ecx, 0x2028
je case.default.0x4938d8
sub ecx, 1
jmp 0x49912a
cmp ecx, 0x85
ja 0x499056
je case.0x498ea9.12
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4938d8
jmp dword [ecx*4 + 0x499dec]
sub ecx, 0x2028
je case.0x498ea9.12
sub ecx, 1
jne case.default.0x4938d8
jmp case.0x498ea9.12
cmp ecx, 0x100
jae case.0x498ea9.12
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 4
jne case.default.0x4938d8
jmp case.0x498ea9.12
cmp ecx, 0x100
jae case.default.0x4938d8
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 4
jmp 0x49912a
cmp ecx, 0x100
jae case.0x498ea9.12
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 1
jne case.default.0x4938d8
jmp case.0x498ea9.12
cmp ecx, 0x100
jae case.default.0x4938d8
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 1
jmp 0x49912a
cmp ecx, 0x100
jae case.0x498ea9.12
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 0x10
jne case.default.0x4938d8
jmp case.0x498ea9.12
cmp ecx, 0x100
jae case.default.0x4938d8
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 0x10
je case.default.0x4938d8
mov eax, dword [esp + 0x17c]
inc ebp
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov ecx, ebx
mov esi, ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x498de0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, 0xfffffff2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [ecx + 0x8c]
test eax, eax
je case.default.0x4938d8
cmp ebx, dword [ecx + 0x88]
jbe case.default.0x4938d8
mov dword [ecx + 0x64], 1
cmp eax, 1
jle case.default.0x4938d8
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x174]
mov esi, dword [edi + 0x94]
mov eax, dword [ecx + ebp*8]
mov dword [esp + 0x3c], eax
mov eax, dword [ecx + ebp*8 + 4]
mov dword [esp + 0x54], eax
mov eax, dword [edi + 0x10]
mov edi, dword [edi + 0xb0]
sub eax, ebp
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
mov dword [esp + 0x48], eax
mov eax, ebx
sub eax, dword [edx + 0x78]
sar eax, 1
mov dword [ecx], eax
mov ecx, edx
mov edx, dword [esp + 0x20]
cmp edx, 0x82
jb 0x499217
mov dword [ecx + 0x9c], 2
mov eax, dword [esp + 0x17c]
inc eax
push eax
push dword [esp + 0x17c]
push ecx
mov ecx, dword [esp + 0x20]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x4bfdd8]
lea edx, [ecx + eax*2]
mov ecx, ebx
call fcn.00491e70
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc1c
je 0x4992e8
cmp edx, 0xfffffc20
jne 0x4992a4
mov eax, dword [esp + 0x14]
movzx ecx, word [eax + 2]
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x174]
cmp dword [ecx + 0x80], eax
jae 0x49931a
mov ecx, dword [esp + 0x14]
cmp word [ecx], 0x71
mov ecx, dword [esp + 0x174]
je 0x4992a0
cmp word [eax], 0x71
jne 0x49931a
xor edx, edx
jmp 0x4992b3
test edx, edx
jne 0x49931a
mov ecx, dword [esp + 0x174]
mov eax, dword [esp + 0x14]
mov dword [ecx + 0x94], esi
mov ecx, dword [esp + 0x14]
movzx eax, word [eax + 2]
lea ecx, [ecx + eax*2]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x174]
mov eax, dword [esp + 0x14]
mov dword [ecx + 0xb0], edi
cmp word [eax], 0x71
jne 0x4992ef
jmp 0x499201
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0xc]
mov ebx, dword [esp + 0x174]
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x48]
mov dword [eax + ebp*8], ecx
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x54]
mov dword [eax + ebp*8 + 4], ecx
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 0xc]
sub ecx, ebp
mov dword [eax + ecx*4], esi
mov eax, edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
cmp edx, 0xfffffc1c
jne 0x499363
movzx eax, word [edi]
mov ecx, eax
cmp eax, 0x7b
je 0x499358
cmp ecx, 0x71
jne 0x499350
mov ecx, edi
movzx eax, word [edi + 2]
cmp word [ecx + eax*2], 0x71
lea edi, [ecx + eax*2]
mov ecx, edi
je 0x499340
movzx eax, word [edi + 2]
add eax, eax
sub edi, eax
xor eax, eax
cmp dword [ebp + 0xb8], edi
cmove edx, eax
mov eax, edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
lea edi, [esi + 4]
mov dword [ebp + 0xb4], edi
mov dword [ebp + 0xb0], 0
mov eax, dword [esp + 0x17c]
inc eax
push eax
movzx eax, word [esi]
push dword [esp + 0x17c]
push ebp
movzx ecx, byte [eax + 0x4bfdd8]
movzx eax, word [esi + 2]
push dword [esp + 0x17c]
add ecx, eax
push dword [esp + 0x17c]
lea edx, [esi + ecx*2]
mov ecx, ebx
call fcn.00491e70
mov esi, eax
add esp, 0x14
cmp esi, 1
je 0x4993d6
cmp esi, 0xfffffc19
je 0x4993d6
cmp esi, 0xfffffc1b
jne 0x4993f2
cmp dword [ebp + 0xb0], 0
jne 0x4993f2
mov dword [ebp + 0xb0], edi
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
cmp esi, 0xfffffc1f
jne 0x4973d8
mov edx, dword [ebp + 0x80]
mov ecx, edi
call fcn.0049b2c0
test eax, eax
jne 0x4973d8
mov dword [ebp + 0x80], ebx
lea eax, [esi - 1]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
push eax
push dword [esp + 0x17c]
movzx eax, byte [edx + 0x4bfdd8]
push ebp
push edi
push dword [esp + 0x17c]
lea edx, [esi + eax*2]
call fcn.00491e70
mov ecx, eax
add esp, 0x14
test ecx, ecx
je 0x49948b
cmp ecx, 0xfffffc1d
je 0x49948b
cmp ecx, 0xfffffc1e
je 0x49948b
cmp ecx, 0xfffffc1f
je 0x49948b
cmp ecx, 0xfffffc20
mov eax, 0xfffffc1a
cmovne eax, ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, 0xfffffc1a
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
push eax
push dword [esp + 0x17c]
movzx eax, byte [edx + 0x4bfdd8]
push ebp
push edi
push dword [esp + 0x17c]
lea edx, [esi + eax*2]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x4994d7
cmp eax, 0xfffffc20
jne 0x497264
mov eax, 0xfffffc1d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov edx, dword [esp + 0x14]
add esi, 4
mov dword [ebp + 0xb4], esi
mov dword [ebp + 0xb0], 0
mov eax, dword [esp + 0x17c]
inc eax
push eax
movzx eax, word [edx]
push dword [esp + 0x17c]
push ebp
movzx ecx, byte [eax + 0x4bfdd8]
movzx eax, word [edx + 2]
add ecx, eax
push edi
push dword [esp + 0x17c]
lea edx, [edx + ecx*2]
mov ecx, ebx
call fcn.00491e70
mov ecx, eax
add esp, 0x14
cmp ecx, 1
je 0x499543
cmp ecx, 0xfffffc19
jne 0x499552
cmp dword [ebp + 0xb0], 0
jne 0x499552
mov dword [ebp + 0xb0], esi
test ecx, ecx
je 0x4994d7
cmp ecx, 0xfffffc20
mov eax, 0xfffffc1d
cmovne eax, ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
push eax
push dword [esp + 0x17c]
movzx eax, byte [edx + 0x4bfdd8]
push ebp
push edi
push dword [esp + 0x17c]
lea edx, [esi + eax*2]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x4995b2
cmp eax, 0xfffffc1d
je 0x4995b2
cmp eax, 0xfffffc20
jne 0x497264
mov dword [ebp + 0x80], ebx
mov eax, 0xfffffc1e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
push eax
push dword [esp + 0x17c]
movzx eax, byte [edx + 0x4bfdd8]
push ebp
push edi
push dword [esp + 0x17c]
lea edx, [esi + eax*2]
call fcn.00491e70
add esp, 0x14
test eax, eax
je 0x49967c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov edx, dword [esp + 0x14]
add esi, 4
mov dword [ebp + 0xb4], esi
mov dword [ebp + 0xb0], 0
mov eax, dword [esp + 0x17c]
inc eax
push eax
movzx eax, word [edx]
push dword [esp + 0x17c]
push ebp
movzx ecx, byte [eax + 0x4bfdd8]
movzx eax, word [edx + 2]
add ecx, eax
push edi
push dword [esp + 0x17c]
lea edx, [edx + ecx*2]
mov ecx, ebx
call fcn.00491e70
add esp, 0x14
cmp eax, 1
je 0x499661
cmp eax, 0xfffffc19
jne 0x499670
cmp dword [ebp + 0xb0], 0
jne 0x499670
mov dword [ebp + 0xb0], esi
test eax, eax
jne 0x497264
mov esi, dword [esp + 0x14]
mov dword [ebp + 0x80], esi
mov eax, 0xfffffc20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov esi, dword [esp + 0x16c]
cmp ebx, esi
jne 0x4996d2
cmp edx, 0x99
je 0x4996d2
cmp dword [ebp + 0xa8], 0
jne 0x4996d2
cmp dword [ebp + 0x5c], 0
jne case.default.0x4938d8
cmp dword [ebp + 0x60], 0
je 0x4996d2
mov ecx, dword [ebp + 0x98]
mov eax, dword [ebp + 0x78]
lea eax, [eax + ecx*2]
cmp esi, eax
je case.default.0x4938d8
mov dword [ebp + 0x84], ebx
test edx, edx
mov eax, 0xfffffc19
mov dword [ebp + 0x90], edi
mov ecx, 1
mov dword [ebp + 0x80], esi
cmove eax, ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, 0xfffffffb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffeb
pop ebx
add esp, 0x158
ret