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

Disassembly:
inc eax
mov dword [ebp], eax
mov eax, dword [esp + 0x17c]
cmp eax, dword [ebp + 8]
jae 0x411858
cmp dword [ebp + 0x9c], 2
jne 0x409f9f
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
jmp 0x409f9f
mov ebp, dword [esp + 0x174]
mov esi, dword [esp + 0x14]
movzx ecx, word [esi]
mov edx, ecx
mov dword [esp + 0x30], 0
mov dword [esp + 0x28], 0
mov edi, ecx
mov dword [esp + 0x20], edx
cmp edx, 0x9b
ja case.0x409fcd.98
movzx eax, byte [edx + 0x4119b0]
jmp dword [eax*4 + 0x411868]
cmp dword [ebp + 0x70], 0
movzx ecx, byte [edx + 0x50a010]
je 0x40f5c1
movzx eax, word [esi + 2]
add ecx, eax
lea esi, [esi + ecx*2]
mov dword [esp + 0x14], esi
jmp 0x409f9f
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.00409eb0
add esp, 0x14
cmp eax, 1
je 0x40a118
cmp eax, 0xfffffc20
jne 0x40a080
mov edx, dword [esp + 0x14]
movzx ecx, word [edx + 2]
lea ecx, [edx + ecx*2]
mov edx, dword [esp + 0x174]
cmp dword [edx + 0x80], ecx
jae 0x40f504
mov edx, dword [esp + 0x14]
cmp word [edx], 0x71
mov edx, dword [esp + 0x174]
je 0x40a08f
cmp word [ecx], 0x71
jne 0x40f504
jmp 0x40a08f
test eax, eax
jne 0x40f504
mov edx, dword [esp + 0x174]
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + 2]
mov dword [edx + 0xb0], esi
lea ecx, [ecx + eax*2]
movzx eax, word [ecx]
mov dword [esp + 0x14], ecx
mov ecx, eax
cmp eax, 0x71
je 0x40a005
mov esi, dword [esp + 0x14]
movzx eax, cx
cmp eax, 0x7c
je 0x40a0d0
cmp eax, 0x71
jne case.default.0x40b839
nop word [eax + eax]
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
movzx eax, word [esi]
mov ecx, eax
cmp eax, 0x71
je 0x40a0d0
mov eax, dword [edx + 0x90]
mov ebx, dword [edx + 0x84]
mov dword [esp + 0x170], eax
mov dword [esp + 0x18], ebx
cmp ecx, 0x72
je 0x40a105
cmp ebx, edi
jne 0x40f265
mov ebp, dword [esp + 0x174]
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x409f9f
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 0x40a0b6
xor ebp, ebp
mov dword [esp + 0x34], ebp
jmp 0x40abf9
cmp word [esi + 4], 0x70
movzx edi, word [esi + 2]
jne 0x40a22e
mov esi, dword [0x622ac4]
test esi, esi
je 0x40a223
mov edx, dword [esp + 0x14]
mov dword [esp + 0xb8], 2
movzx eax, word [edx + 6]
mov dword [esp + 0xbc], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xc0], eax
mov ecx, dword [ebp + 0x78]
mov dword [esp + 0xc4], ecx
mov eax, dword [ebp + 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
sar eax, 1
mov dword [esp + 0xd0], eax
movzx eax, word [edx + 8]
mov dword [esp + 0xe0], eax
movzx eax, word [edx + 0xa]
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 [ebp + 0x94]
mov dword [esp + 0xd8], eax
mov eax, dword [ebp + 0xac]
mov dword [esp + 0xdc], eax
mov eax, dword [ebp + 0xb4]
mov dword [esp + 0xe8], eax
lea eax, [esp + 0xb8]
push eax
call esi
add esp, 4
test eax, eax
jg case.default.0x40b839
js 0x40f504
mov esi, dword [esp + 0x14]
add esi, 0xc
mov dword [esp + 0x14], esi
movzx edx, word [esi + 4]
cmp edx, 0x89
je 0x40a403
cmp edx, 0x8a
je 0x40a403
cmp edx, 0x87
je 0x40a2bf
cmp edx, 0x88
je 0x40a2bf
cmp edx, 0x8b
jne 0x40a26e
movzx eax, word [esi + 2]
lea eax, [esi + eax*2]
jmp 0x40a59f
mov dword [ebp + 0x9c], 1
lea edx, [esi + 4]
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
push eax
push 0
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
cmp eax, 1
je 0x40f2fa
test eax, eax
je 0x40a2b7
cmp eax, 0xfffffc20
jne 0x40f504
lea eax, [esi + edi*2]
jmp 0x40a59f
movzx esi, word [esi + 6]
lea ecx, [esi + esi]
cmp ecx, dword [esp + 0x170]
jge 0x40a2dc
mov eax, dword [ebp + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x40a586
cmp edx, 0x88
jne 0x40a3f4
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x28]
mov edi, eax
mov dword [esp + 0x2c], 0
test ecx, ecx
jle 0x40a3f4
mov ebp, eax
xor edx, edx
movzx eax, word [edi]
cmp eax, esi
je 0x40a33e
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x24]
lea edi, [eax*2]
mov eax, dword [esp + 0x2c]
inc eax
add edi, ebp
mov dword [esp + 0x2c], eax
mov edx, eax
mov ebp, edi
cmp eax, ecx
jl 0x40a304
mov eax, dword [esp + 0x14]
xor ecx, ecx
movzx eax, word [eax + 2]
jmp 0x40a590
cmp edx, ecx
jge 0x40a3f4
mov eax, dword [esp + 0x174]
mov esi, edi
cmp edi, dword [eax + 0x28]
jbe 0x40a3a3
mov eax, dword [eax + 0x24]
lea ecx, [edi + 2]
neg eax
lea esi, [esi + eax*2]
lea edx, [esi + 2]
call fcn.004145a0
test eax, eax
jne 0x40a39c
movzx eax, word [esi]
lea ecx, [eax + eax]
cmp ecx, dword [esp + 0x170]
jge 0x40a38e
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x40a586
mov eax, dword [esp + 0x174]
cmp esi, dword [eax + 0x28]
ja 0x40a354
jmp 0x40a3a3
mov eax, dword [esp + 0x174]
mov ebp, dword [esp + 0x2c]
inc ebp
cmp ebp, dword [eax + 0x20]
jge 0x40a3f4
lea esi, [edi + 2]
mov eax, dword [eax + 0x24]
mov ecx, esi
lea edi, [edi + eax*2]
lea edx, [edi + 2]
call fcn.004145a0
test eax, eax
jne 0x40a3f4
movzx eax, word [edi]
lea ecx, [eax + eax]
cmp ecx, dword [esp + 0x170]
jge 0x40a3e7
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x40a586
mov eax, dword [esp + 0x174]
inc ebp
cmp ebp, dword [eax + 0x20]
jl 0x40a3b0
mov eax, dword [esp + 0x14]
xor ecx, ecx
movzx eax, word [eax + 2]
jmp 0x40a590
mov eax, dword [ebp + 0xa8]
test eax, eax
jne 0x40a419
movzx eax, word [esi + 2]
lea eax, [esi + eax*2]
jmp 0x40a59f
movzx esi, word [esi + 6]
cmp esi, 0xffff
je 0x40a586
cmp esi, dword [eax + 4]
je 0x40a586
xor ecx, ecx
mov dword [esp + 0x30], ecx
cmp edx, 0x8a
jne 0x40a57c
mov edx, dword [esp + 0x174]
mov eax, dword [ebp + 0x28]
mov edi, eax
xor ebp, ebp
mov dword [esp + 0x3c], edi
mov dword [esp + 0x28], ebp
mov edx, dword [edx + 0x20]
test edx, edx
jle 0x40a57c
mov dword [esp + 0x2c], eax
xor eax, eax
mov dword [esp + 0x34], eax
nop
movzx eax, word [edi]
cmp eax, esi
je 0x40a4aa
mov eax, dword [esp + 0x174]
inc ebp
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x34], ebp
mov eax, dword [eax + 0x24]
lea edi, [edi + eax*2]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x2c], edi
cmp ebp, edx
jl 0x40a470
mov eax, dword [esp + 0x14]
movzx eax, word [eax + 2]
jmp 0x40a590
cmp dword [esp + 0x34], edx
jge 0x40a57c
mov edx, dword [esp + 0x174]
mov esi, edi
cmp edi, dword [edx + 0x28]
jbe 0x40a520
mov ebx, dword [esp + 0x30]
lea eax, [edi + 2]
mov dword [esp + 0x2c], eax
mov edi, eax
mov ebp, edx
mov eax, dword [ebp + 0x24]
mov ecx, edi
neg eax
lea esi, [esi + eax*2]
lea edx, [esi + 2]
call fcn.004145a0
test eax, eax
jne 0x40a501
mov eax, dword [ebp + 0xa8]
xor ebx, ebx
movzx ecx, word [esi]
mov eax, dword [eax + 4]
cmp ecx, eax
sete bl
je 0x40a501
cmp esi, dword [ebp + 0x28]
ja 0x40a4d1
mov edi, dword [esp + 0x3c]
test ebx, ebx
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x18]
jne 0x40a572
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x174]
inc ebp
cmp ebp, dword [edx + 0x20]
jge 0x40a57c
mov ebx, dword [esp + 0x30]
lea esi, [edi + 2]
nop dword [eax]
mov eax, dword [edx + 0x24]
mov ecx, esi
lea edi, [edi + eax*2]
lea edx, [edi + 2]
call fcn.004145a0
test eax, eax
jne 0x40a566
mov edx, dword [esp + 0x174]
xor ebx, ebx
movzx ecx, word [edi]
mov eax, dword [edx + 0xa8]
mov eax, dword [eax + 4]
cmp ecx, eax
sete bl
je 0x40a566
inc ebp
cmp ebp, dword [edx + 0x20]
jl 0x40a530
mov dword [esp + 0x30], ebx
test ebx, ebx
mov ebx, dword [esp + 0x18]
je 0x40a578
mov ecx, dword [esp + 0x30]
jmp 0x40a58b
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
movzx eax, word [eax + 2]
jmp 0x40a590
mov ecx, 1
mov eax, 2
mov edx, dword [esp + 0x14]
lea eax, [edx + eax*2]
test ecx, ecx
jne 0x40f344
cmp word [eax], 0x71
mov ebp, dword [esp + 0x174]
je 0x40f34b
lea esi, [eax + 4]
mov dword [esp + 0x14], esi
jmp 0x409f9f
movzx esi, word [esi + 2]
mov dword [ebp + 0x94], esi
lea edx, [esi + esi]
cmp edx, dword [ebp + 0x14]
jl 0x40a5e5
mov esi, dword [esp + 0x14]
add esi, 4
mov dword [ebp + 0x40], 1
mov dword [esp + 0x14], esi
jmp 0x409f9f
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
sub eax, esi
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov ecx, ebx
sub ecx, dword [ebp + 0x78]
mov eax, dword [ebp + 0xc]
sar ecx, 1
mov dword [eax + edx*4 + 4], ecx
cmp dword [esp + 0x170], edx
jg 0x40a614
lea eax, [edx + 2]
mov dword [esp + 0x170], eax
mov esi, dword [esp + 0x14]
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x409f9f
cmp dword [ebp + 0x9c], 1
mov esi, dword [ebp + 0xb0]
jne 0x40a644
mov dword [ebp + 0x9c], 0
mov edi, 1
jmp 0x40a650
xor edi, edi
nop word [eax + eax]
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.00409eb0
add esp, 0x14
cmp eax, 1
je 0x40a6bb
cmp eax, 0xfffffc19
je 0x40a6bb
test eax, eax
je 0x40a696
cmp eax, 0xfffffc20
jne 0x40f504
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 0x40a650
mov esi, dword [esp + 0x14]
jmp 0x40a6cf
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.0x40b839
test edi, edi
jne 0x40f687
movzx eax, word [esi + 2]
cmp word [esi + eax*2], 0x71
lea esi, [esi + eax*2]
je 0x40a6e1
mov eax, dword [ebp + 0x90]
add esi, 4
mov dword [esp + 0x14], esi
mov dword [esp + 0x170], eax
jmp 0x409f9f
cmp dword [ebp + 0x9c], 1
mov esi, dword [ebp + 0xb0]
jne 0x40a728
mov dword [ebp + 0x9c], 0
mov edi, 1
jmp 0x40a72a
xor edi, edi
mov ecx, dword [esp + 0x14]
nop
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.00409eb0
add esp, 0x14
mov dword [ebp + 0xb0], esi
cmp eax, 1
je case.default.0x40b839
cmp eax, 0xfffffc19
je case.default.0x40b839
cmp eax, 0xfffffc1e
je 0x40a7af
cmp eax, 0xfffffc1d
je 0x40a7af
cmp eax, 0xfffffc1a
je 0x40a7af
test eax, eax
je 0x40a795
cmp eax, 0xfffffc20
jne 0x40f504
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 0x40a730
mov esi, ecx
jmp 0x40a7c1
mov esi, dword [esp + 0x14]
movzx eax, word [esi + 2]
cmp word [esi + eax*2], 0x71
lea esi, [esi + eax*2]
je 0x40a7b3
test edi, edi
jne 0x40f687
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x409f9f
movzx ecx, word [esi + 2]
test ecx, ecx
je 0x40a80d
mov edx, dword [ebp + 0x78]
mov edi, 0xfc00
add ebx, 0xfffffffe
dec ecx
mov dword [esp + 0x18], ebx
cmp ebx, edx
jb case.default.0x40b839
mov ax, word [ebx]
and ax, di
cmp ax, word [esp + 0x48]
jne 0x40a809
add ebx, 0xfffffffe
mov dword [esp + 0x18], ebx
test ecx, ecx
jg 0x40a7e5
cmp ebx, dword [ebp + 0x88]
jae 0x40a81b
mov dword [ebp + 0x88], ebx
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x409f9f
mov esi, dword [0x622ac4]
test esi, esi
je 0x40a905
mov edi, dword [esp + 0x14]
mov dword [esp + 0x80], 2
movzx eax, word [edi + 2]
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
sar eax, 1
mov dword [esp + 0x98], eax
movzx eax, word [edi + 8]
mov dword [esp + 0xa8], eax
movzx eax, word [edi + 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
mov eax, dword [edi + 4]
mov dword [esp + 0xb4], eax
lea eax, [esp + 0x80]
push eax
call esi
add esp, 4
test eax, eax
jg case.default.0x40b839
js 0x40f504
mov esi, dword [esp + 0x14]
add esi, 0xc
mov dword [esp + 0x14], esi
jmp 0x409f9f
mov ecx, dword [ebp + 0x74]
movzx eax, word [esi + 2]
lea edi, [ecx + eax*2]
cmp edi, ecx
jne 0x40a927
xor ecx, ecx
jmp 0x40a92b
movzx ecx, word [edi + 4]
mov edx, dword [ebp + 0xa8]
mov eax, edx
test edx, edx
je 0x40a94b
cmp ecx, dword [eax + 4]
jne 0x40a945
cmp ebx, dword [eax + 0x10]
je 0x40f62a
mov eax, dword [eax]
test eax, eax
jne 0x40a937
mov dword [esp + 0x58], ecx
lea eax, [esp + 0x54]
mov dword [esp + 0x64], ebx
add esi, 4
mov dword [esp + 0x54], edx
mov dword [ebp + 0xa8], eax
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x14], esi
mov dword [esp + 0x60], ecx
cmp ecx, 0x1e
jg 0x40a981
lea eax, [esp + 0xf0]
mov dword [esp + 0x5c], eax
jmp 0x40a9a2
lea eax, [ecx*4]
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 4
mov dword [esp + 0x5c], eax
test eax, eax
je 0x40f664
mov ecx, dword [esp + 0x60]
shl ecx, 2
push ecx
push dword [ebp + 0xc]
push eax
call sub.VCRUNTIME140.dll_memcpy
movzx ebp, word [edi]
add esp, 0xc
mov ecx, dword [esp + 0x174]
nop dword [eax]
mov eax, 0x82
cmp bp, ax
jb 0x40a9d4
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 + 0x50a010]
push dword [esp + 0x17c]
lea edx, [edi + eax*2]
call fcn.00409eb0
mov ecx, dword [esp + 0x74]
add esp, 0x14
shl ecx, 2
mov esi, eax
mov eax, dword [esp + 0x174]
push ecx
push dword [esp + 0x60]
push dword [eax + 0xc]
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esp + 0x180]
add esp, 0xc
mov eax, dword [esp + 0x54]
mov dword [ecx + 0xa8], eax
cmp esi, 1
je 0x40aaad
cmp esi, 0xfffffc19
je 0x40aaad
test esi, esi
je 0x40aa60
cmp esi, 0xfffffc20
jne 0x40f63a
lea eax, [esp + 0x54]
mov dword [ecx + 0xa8], eax
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x40a9c0
mov eax, dword [esp + 0x54]
mov dword [ecx + 0xa8], eax
lea ecx, [esp + 0xf0]
mov eax, dword [esp + 0x5c]
cmp eax, ecx
je case.default.0x40b839
push eax
call dword [0x526b54]
add esp, 4
nop
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x5c]
lea ecx, [esp + 0xf0]
cmp eax, ecx
je 0x40aac6
push eax
call dword [0x526b54]
add esp, 4
mov ebp, dword [esp + 0x174]
mov ebx, dword [ebp + 0x84]
mov eax, dword [ebp + 0x80]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x16c], eax
jmp 0x409f9b
movzx eax, word [esi + 2]
cmp word [esi + eax*2], 0x71
lea esi, [esi + eax*2]
je case.0x409fcd.113
mov dword [esp + 0x14], esi
jmp 0x409f9f
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 dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
nop dword [eax]
movzx eax, word [esi + 2]
cmp word [esi + eax*2], 0x71
lea esi, [esi + eax*2]
je 0x40ab40
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x409f9f
add esi, 2
mov dword [esp + 0x14], esi
mov edx, esi
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x71
lea edx, [edx + eax*2]
je 0x40ab63
mov eax, dword [esp + 0x17c]
add edx, 4
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x409f9f
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
lea ecx, [esi + 2]
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x71
lea ecx, [ecx + eax*2]
je 0x40abb3
lea esi, [ecx + 4]
mov dword [esp + 0x14], esi
jmp 0x409f9f
movzx edx, word [esi + 2]
add esi, 2
mov dword [esp + 0x14], esi
mov ebp, 1
mov dword [esp + 0x20], edx
mov dword [esp + 0x34], ebp
cmp edx, 0x80
je 0x40abf9
cmp edx, 0x85
jne 0x40addd
movzx edx, word [esi + 4]
mov ecx, dword [esp + 0x174]
mov dword [esp + 0x2c], edx
lea eax, [edx + edx]
cmp eax, dword [ecx + 0x14]
jge 0x40add7
shl eax, 2
mov edi, esi
sub edi, dword [ecx + 0x74]
xor ebp, ebp
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x3c], 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 + 0x30], esi
mov eax, dword [eax + 0x10]
sub eax, edx
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x174]
mov dword [esp + 0x24], eax
mov esi, dword [ecx + 0x94]
nop word [eax + eax]
mov eax, dword [esp + 0x174]
mov edx, ebx
sub edx, dword [ecx + 0x78]
mov ecx, dword [ecx + 0x10]
sub ecx, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
sar edx, 1
cmp dword [esp + 0x20], 0x82
mov dword [eax + ecx*4], edx
jb 0x40ac96
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 + 0x50a010]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
lea edx, [ecx + eax*2]
mov ecx, ebx
call fcn.00409eb0
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1b
jne 0x40ad12
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 + 0x18], ebx
lea eax, [eax + edi*2]
mov dword [esp + 0x14], eax
jmp 0x40ac50
cmp ecx, 0xfffffc20
jne 0x40ad51
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 0x40ad44
mov edx, dword [esp + 0x14]
cmp word [edx], 0x71
je 0x40ad59
cmp word [eax], 0x71
je 0x40ad59
mov eax, ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
test ecx, ecx
jne 0x40ad44
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 0x40ac60
test ebp, ebp
jne 0x40adb1
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x174]
mov edx, dword [esp + 0x30]
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 + 0x2c]
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4], edx
cmp dword [esp + 0x34], 0
jne 0x40adc0
test ebp, ebp
je case.default.0x40b839
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x174]
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x409f9f
mov edx, dword [esp + 0x20]
xor ebp, ebp
mov ecx, dword [esp + 0x174]
xor edi, edi
sub esi, dword [ecx + 0x74]
sar esi, 1
nop dword [eax + eax]
cmp edx, 0x82
jb 0x40ae02
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 + 0x50a010]
lea edx, [ecx + eax*2]
mov ecx, ebx
call fcn.00409eb0
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1b
jne 0x40ae7c
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 + 0x18], ebx
lea eax, [eax + esi*2]
mov dword [esp + 0x14], eax
jmp 0x40adf0
cmp ecx, 0xfffffc20
jne 0x40aeb2
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 0x40ad44
mov edx, dword [esp + 0x14]
cmp word [edx], 0x71
je 0x40aeba
cmp word [eax], 0x71
jmp 0x40aeb4
test ecx, ecx
jne 0x40ad44
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 0x40adf0
test edi, edi
jne 0x40aeeb
test ebp, ebp
je case.default.0x40b839
mov esi, dword [esp + 0x14]
mov ebp, ecx
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x409f9f
movzx eax, word [esi + 2]
mov ebp, esi
add eax, eax
sub ebp, eax
mov eax, 0x82
movzx ecx, word [ebp]
cmp cx, ax
jae 0x40af24
cmp ecx, 0x7b
je 0x40af24
mov dword [esp + 0x2c], 0
jmp 0x40af3d
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 + 0x2c], eax
cmp ecx, 0x77
jb 0x40af4b
cmp ecx, 0x7a
jbe 0x40f778
cmp ecx, 0x7c
je 0x40f778
cmp ecx, 0x7f
je 0x40af7b
mov eax, 0x84
cmp cx, ax
je 0x40af7b
mov eax, 0x80
cmp cx, ax
je 0x40af7b
mov eax, 0x85
cmp cx, ax
jne 0x40b04e
mov edi, dword [esp + 0x174]
movzx esi, word [ebp + 4]
mov eax, dword [edi + 0xa8]
lea edx, [esi + esi]
test eax, eax
je 0x40af9c
cmp dword [eax + 4], esi
je 0x40f674
mov dword [edi + 0x94], esi
cmp edx, dword [edi + 0x14]
jl 0x40afeb
mov dword [edi + 0x40], 1
mov edx, dword [esp + 0x170]
mov esi, dword [esp + 0x14]
movzx eax, word [esi]
mov ecx, eax
cmp eax, 0x72
je 0x40afcd
cmp ebx, dword [esp + 0x2c]
jne 0x40f3a1
add esi, 4
cmp word [ebp], 0x7b
mov dword [esp + 0x14], esi
je 0x40f735
mov ebp, dword [esp + 0x174]
jmp 0x409f9f
mov ecx, dword [esp + 0x170]
cmp edx, ecx
jle 0x40b016
mov eax, dword [edi + 0xc]
lea edi, [eax + ecx*4]
lea ecx, [eax + edx*4]
cmp edi, ecx
jae 0x40b00f
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x174]
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
sub eax, esi
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov ecx, ebx
sub ecx, dword [edi + 0x78]
mov eax, dword [edi + 0xc]
sar ecx, 1
mov dword [eax + edx*4 + 4], ecx
cmp dword [esp + 0x170], edx
jg 0x40afae
add edx, 2
mov dword [esp + 0x170], edx
jmp 0x40afb5
mov edi, dword [esp + 0x174]
mov edx, dword [esp + 0x170]
jmp 0x40afb9
cmp dword [ebp + 0x44], 0
je case.0x409fcd.1
cmp ebx, dword [ebp + 0x78]
je case.default.0x40b839
cmp ebx, dword [ebp + 0x78]
jne case.default.0x40b839
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x409f9f
cmp dword [ebp + 0x44], 0
je 0x40b099
cmp ebx, dword [ebp + 0x78]
je case.default.0x40b839
mov ecx, dword [ebp + 0x78]
jmp 0x40b0a4
mov ecx, dword [ebp + 0x78]
cmp ebx, ecx
je 0x40b2f9
cmp ebx, dword [ebp + 0x7c]
je case.default.0x40b839
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x40b0e1
cmp ebx, ecx
jbe case.default.0x40b839
push 1
lea eax, [ebp + 0x1c]
push eax
push ecx
mov ecx, ebx
call fcn.00414730
add esp, 0xc
test eax, eax
je case.default.0x40b839
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x409f9f
mov esi, dword [ebp + 0x1c]
lea edx, [esi + esi]
lea eax, [ecx + edx]
cmp ebx, eax
jb case.default.0x40b839
mov ecx, ebx
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [ebp + 0x2c]
jne case.default.0x40b839
cmp esi, 1
je 0x40b2f5
mov ax, word [ecx + 2]
cmp ax, word [ebp + 0x2e]
jne case.default.0x40b839
mov esi, dword [esp + 0x14]
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x409f9f
mov ecx, dword [ebp + 0x98]
mov eax, dword [ebp + 0x78]
lea eax, [eax + ecx*2]
cmp ebx, eax
jne case.default.0x40b839
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x409f9f
add esi, 2
mov dword [esp + 0x16c], ebx
mov dword [esp + 0x14], esi
jmp 0x409f9f
mov ecx, dword [ebp + 0x7c]
cmp ebx, ecx
jae 0x40b1d4
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x40b194
push 1
lea eax, [ebp + 0x1c]
push eax
push ecx
mov ecx, ebx
call fcn.00414670
add esp, 0xc
test eax, eax
je case.default.0x40b839
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x409f9f
mov edx, dword [ebp + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja case.default.0x40b839
mov ax, word [ebx]
cmp ax, word [ebp + 0x2c]
jne case.default.0x40b839
cmp edx, 1
je 0x40b2f9
mov ax, word [ebx + 2]
cmp ax, word [ebp + 0x2e]
jne case.default.0x40b839
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x409f9f
cmp dword [ebp + 0x48], 0
jne case.default.0x40b839
mov eax, dword [ebp + 0x8c]
test eax, eax
je 0x40b2f9
cmp ebx, dword [ebp + 0x88]
jbe 0x40b2f9
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x411290
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x409f9f
cmp dword [ebp + 0x48], 0
jne case.default.0x40b839
cmp dword [ebp + 0x58], 0
je case.0x409fcd.23
cmp ebx, dword [ebp + 0x7c]
jb case.default.0x40b839
mov eax, dword [ebp + 0x8c]
test eax, eax
je 0x40b2f9
cmp ebx, dword [ebp + 0x88]
jbe 0x40b2f9
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x411290
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x409f9f
mov esi, dword [ebp + 0x7c]
cmp ebx, esi
jae 0x40b2d3
mov edx, dword [ebp + 0x18]
lea edi, [ebp + 0x1c]
test edx, edx
je 0x40b295
push 1
push edi
push esi
mov ecx, ebx
call fcn.00414670
add esp, 0xc
test eax, eax
je case.default.0x40b839
mov edx, dword [edi]
mov esi, dword [ebp + 0x7c]
jmp 0x40b2c6
mov edx, dword [edi]
mov ecx, esi
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja case.default.0x40b839
mov ax, word [ebx]
cmp ax, word [ebp + 0x2c]
jne case.default.0x40b839
cmp edx, 1
je 0x40b2c6
mov ax, word [ebx + 2]
cmp ax, word [ebp + 0x2e]
jne case.default.0x40b839
lea eax, [edx + edx]
sub esi, eax
cmp ebx, esi
jne case.default.0x40b839
mov eax, dword [ebp + 0x8c]
test eax, eax
je 0x40b2f5
cmp ebx, dword [ebp + 0x88]
jbe 0x40b2f5
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x411290
mov esi, dword [esp + 0x14]
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x409f9f
cmp ebx, dword [ebp + 0x78]
je 0x40b3ce
mov ax, word [ebx - 2]
lea edx, [ebx - 2]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x40b32a
add edx, 0xfffffffe
cmp edx, dword [ebp + 0x88]
jae 0x40b338
mov dword [ebp + 0x88], edx
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40b363
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 0x40b3b6
cmp ecx, 0x5f
jne 0x40b37a
lea edx, [ecx - 0x5e]
jmp 0x40b3d0
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x5172a0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
mov eax, dword [eax*4 + 0x509f90]
cmp eax, 1
je 0x40b3af
cmp eax, 3
jne 0x40b3ce
mov edx, 1
jmp 0x40b3d0
cmp ecx, 0x100
jae 0x40b3ce
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
je 0x40b3ce
mov edx, 1
jmp 0x40b3d0
xor edx, edx
cmp ebx, dword [ebp + 0x7c]
jb 0x40b426
mov eax, dword [ebp + 0x8c]
test eax, eax
je 0x40b3fb
cmp ebx, dword [ebp + 0x88]
jbe 0x40b3fb
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x411290
xor ecx, ecx
movzx eax, word [esi]
xor edx, ecx
add esi, 2
mov dword [esp + 0x14], esi
cmp eax, 5
jne 0x40b411
xor edx, 1
test edx, edx
je 0x409f9f
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
movzx ecx, word [ebx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40b451
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
cmp dword [ebp + 0x54], 0
je 0x40b4aa
cmp ecx, 0x5f
jne 0x40b467
mov ecx, 1
jmp 0x40b3fd
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x5172a0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
mov eax, dword [eax*4 + 0x509f90]
cmp eax, 1
je 0x40b4a0
cmp eax, 3
jne 0x40b3fb
mov ecx, 1
jmp 0x40b3fd
cmp ecx, 0x100
jae 0x40b3fb
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
je 0x40b3fb
mov ecx, 1
jmp 0x40b3fd
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x7c]
test edx, edx
je 0x40b4f6
cmp ebx, ecx
jae case.0x409fcd.13
push 1
lea eax, [ebp + 0x1c]
push eax
push ecx
mov ecx, ebx
call fcn.00414670
add esp, 0xc
test eax, eax
jne case.default.0x40b839
jmp case.0x409fcd.13
mov edx, dword [ebp + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja case.0x409fcd.13
mov ax, word [ebx]
cmp ax, word [ebp + 0x2c]
jne case.0x409fcd.13
cmp edx, 1
je case.default.0x40b839
mov ax, word [ebx + 2]
cmp ax, word [ebp + 0x2e]
je case.default.0x40b839
mov eax, dword [ebp + 0x7c]
cmp ebx, eax
jae 0x411261
add ebx, 2
mov dword [esp + 0x18], ebx
cmp ebx, eax
jae 0x40b554
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x40b554
add ebx, 2
mov dword [esp + 0x18], ebx
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x409f9f
cmp ebx, dword [ebp + 0x7c]
jae 0x411261
add ebx, 2
add esi, 2
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], esi
jmp 0x409f9f
cmp ebx, dword [ebp + 0x7c]
jae 0x411261
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40b5bd
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 + 0x18], ebx
cmp ecx, 0x100
jae 0x40b2f9
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 4
jne case.default.0x40b839
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x409f9f
cmp ebx, dword [ebp + 0x7c]
jae 0x411261
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40b623
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 + 0x18], ebx
cmp ecx, 0xff
ja case.default.0x40b839
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 4
je case.default.0x40b839
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x409f9f
cmp ebx, dword [ebp + 0x7c]
jae 0x411261
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40b689
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 + 0x18], ebx
cmp ecx, 0x100
jae 0x40b2f9
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 1
jne case.default.0x40b839
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x409f9f
cmp ebx, dword [ebp + 0x7c]
jae 0x411261
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40b6ef
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 + 0x18], ebx
cmp ecx, 0xff
ja case.default.0x40b839
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 1
je case.default.0x40b839
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x409f9f
cmp ebx, dword [ebp + 0x7c]
jae 0x411261
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40b755
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 + 0x18], ebx
cmp ecx, 0x100
jae 0x40b2f9
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
jne case.default.0x40b839
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x409f9f
cmp ebx, dword [ebp + 0x7c]
jae 0x411261
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40b7bb
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 + 0x18], ebx
cmp ecx, 0xff
ja case.default.0x40b839
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
je case.default.0x40b839
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x409f9f
mov esi, dword [ebp + 0x7c]
cmp ebx, esi
jae 0x411261
movzx ecx, word [ebx]
lea edx, [ebx + 2]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40b81b
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 0x40b889
je case.0x40b839.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x40b839
jmp dword [ecx*4 + 0x411a4c]
mov ebx, edx
mov dword [esp + 0x18], ebx
cmp edx, esi
jae 0x40b2f5
cmp word [edx], 0xa
mov dword [esp + 0x18], ebx
jne 0x40b2f5
mov esi, dword [esp + 0x14]
lea ebx, [edx + 2]
add esi, 2
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], esi
jmp 0x409f9f
mov esi, dword [esp + 0x14]
mov ebx, edx
add esi, 2
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], esi
jmp 0x409f9f
sub ecx, 0x2028
je case.0x40b839.11
sub ecx, 1
jne case.default.0x40b839
cmp dword [ebp + 0x68], 0
mov ebx, edx
mov dword [esp + 0x18], ebx
jne case.default.0x40b839
mov esi, dword [esp + 0x14]
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x409f9f
cmp ebx, dword [ebp + 0x7c]
jae 0x411261
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40b8fb
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 + 0x18], ebx
cmp ecx, 0x2000
ja 0x40b959
je case.default.0x40b839
cmp ecx, 0xa0
ja 0x40b935
je case.default.0x40b839
cmp ecx, 9
je case.default.0x40b839
cmp ecx, 0x20
je case.default.0x40b839
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x409f9f
cmp ecx, 0x1680
je case.default.0x40b839
cmp ecx, 0x180e
je case.default.0x40b839
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x409f9f
cmp ecx, 0x3000
ja case.0x40b981.8203
je case.default.0x40b839
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x40b981.8203
movzx eax, byte [ecx + 0x411a64]
jmp dword [eax*4 + 0x411a5c]
cmp ebx, dword [ebp + 0x7c]
jae 0x411261
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40b9c9
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 + 0x18], ebx
cmp ecx, 0x2000
ja 0x40ba0d
je case.0x40b981.8203
cmp ecx, 0xa0
ja 0x40b9f6
je case.0x40b981.8203
cmp ecx, 9
je case.0x40b981.8203
cmp ecx, 0x20
jmp 0x40b073
cmp ecx, 0x1680
je case.0x40b981.8203
cmp ecx, 0x180e
jmp 0x40b073
cmp ecx, 0x3000
ja case.default.0x40b839
je case.0x40b981.8203
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x40b839
movzx eax, byte [ecx + 0x411acc]
jmp dword [eax*4 + 0x411ac4]
cmp ebx, dword [ebp + 0x7c]
jae 0x411261
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40ba7d
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 + 0x18], ebx
cmp ecx, 0x85
ja 0x40ba9e
je case.default.0x40b839
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x40b981.8203
jmp dword [ecx*4 + 0x411b2c]
sub ecx, 0x2028
je case.default.0x40b839
sub ecx, 1
je case.default.0x40b839
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x409f9f
cmp ebx, dword [ebp + 0x7c]
jae 0x411261
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40bb00
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 + 0x18], ebx
cmp ecx, 0x85
ja 0x40bb21
je case.0x40b981.8203
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x40b839
jmp dword [ecx*4 + 0x411b3c]
sub ecx, 0x2028
je case.0x40b981.8203
sub ecx, 1
jmp 0x40b073
cmp ebx, dword [ebp + 0x7c]
jae 0x411261
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40bb76
movzx eax, word [ebx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
add ebx, 2
or edx, eax
mov dword [esp + 0x18], ebx
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x5172a0]
mov eax, edx
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x50a8c0]
movzx ecx, word [esi + 2]
cmp ecx, 8
ja case.default.0x40bba1
jmp dword [ecx*4 + 0x411b4c]
cmp dword [esp + 0x20], 0xf
jmp 0x40bcf8
mov al, byte [eax*8 + 0x5161c1]
cmp al, 9
je 0x40bce7
cmp al, 5
je 0x40bce7
cmp al, 8
je 0x40bce7
xor ecx, ecx
jmp 0x40bcec
movzx ecx, byte [eax*8 + 0x5161c1]
xor edx, edx
movzx eax, word [esi + 4]
cmp eax, dword [ecx*4 + 0x509f90]
setne dl
xor eax, eax
cmp dword [esp + 0x20], 0x10
sete al
cmp edx, eax
jmp 0x40bcf8
movzx eax, byte [eax*8 + 0x5161c1]
xor ecx, ecx
cmp word [esi + 4], ax
setne cl
xor eax, eax
cmp dword [esp + 0x20], 0x10
jmp 0x40bcf3
movzx eax, byte [eax*8 + 0x5161c0]
xor ecx, ecx
cmp word [esi + 4], ax
setne cl
xor eax, eax
cmp dword [esp + 0x20], 0x10
jmp 0x40bcf3
movzx eax, byte [eax*8 + 0x5161c1]
mov eax, dword [eax*4 + 0x509f90]
cmp eax, 1
je 0x40bce7
cmp eax, 3
je 0x40bce7
xor ecx, ecx
jmp 0x40bcec
movzx eax, byte [eax*8 + 0x5161c1]
cmp dword [eax*4 + 0x509f90], 6
je 0x40bce7
cmp edx, 9
je 0x40bce7
cmp edx, 0xa
je 0x40bce7
cmp edx, 0xc
je 0x40bce7
cmp edx, 0xd
je 0x40bce7
xor ecx, ecx
jmp 0x40bcec
movzx eax, byte [eax*8 + 0x5161c1]
cmp dword [eax*4 + 0x509f90], 6
je 0x40bce7
cmp edx, 9
je 0x40bce7
cmp edx, 0xa
je 0x40bce7
cmp edx, 0xb
jmp 0x40bc85
movzx eax, byte [eax*8 + 0x5161c1]
mov eax, dword [eax*4 + 0x509f90]
cmp eax, 1
je 0x40bce7
cmp eax, 3
je 0x40bce7
cmp edx, 0x5f
je 0x40bce7
xor ecx, ecx
jmp 0x40bcec
mov ecx, 1
xor eax, eax
cmp dword [esp + 0x20], 0xf
sete al
cmp ecx, eax
je case.default.0x40b839
add esi, 6
mov dword [esp + 0x14], esi
jmp 0x409f9f
mov edi, dword [ebp + 0x7c]
cmp ebx, edi
jae 0x411261
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40bd4d
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 + 0x18], ebx
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x5172a0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
cmp dword [eax*4 + 0x509f90], 2
je case.default.0x40b839
cmp ebx, edi
jae case.0x40b981.8203
mov esi, ebx
mov dword [esp + 0x18], ebx
nop dword [eax]
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40bdc5
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 + 0x5172a0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
cmp dword [eax*4 + 0x509f90], 2
jne 0x40bdfc
lea ebx, [esi + edx*2]
mov esi, ebx
cmp ebx, edi
jb 0x40bd90
mov esi, dword [esp + 0x14]
add esi, 2
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], esi
jmp 0x409f9f
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 + 0x3c], edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x14], esi
cmp ecx, dword [esp + 0x170]
jge 0x40be4b
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + ecx*4]
test esi, esi
js 0x40be4b
mov ebp, dword [eax + ecx*4 + 4]
sub ebp, esi
jmp 0x40be55
mov ebp, dword [ebp + 0x50]
neg ebp
sbb ebp, ebp
neg ebp
dec ebp
mov eax, dword [esp + 0x14]
movzx esi, word [eax]
mov edi, esi
lea eax, [edi - 0x62]
cmp eax, 7
ja case.default.0x40be71
movzx eax, byte [eax + 0x411b78]
jmp dword [eax*4 + 0x411b70]
add dword [esp + 0x14], 2
mov eax, edi
movsx esi, byte [edi + 0x509be2]
and eax, 1
mov dword [esp + 0x30], eax
movsx eax, byte [edi + 0x509bda]
mov dword [esp + 0x34], eax
test eax, eax
jne 0x40bed0
mov dword [esp + 0x34], connect
jmp 0x40bed0
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 + 0x4c]
add edi, 6
mov dword [esp + 0x34], eax
mov dword [esp + 0x14], edi
test ebp, ebp
je 0x409f94
jns 0x40bee2
test esi, esi
je 0x409f94
mov edi, 1
cmp esi, edi
jl 0x40bf1f
nop dword [eax + eax]
push edx
push dword [esp + 0x178]
mov edx, ebx
push ebp
call fcn.00409d00
add esp, 0xc
test eax, eax
js 0x40f7af
mov ecx, dword [esp + 0x2c]
lea ebx, [ebx + eax*2]
mov edx, dword [esp + 0x3c]
inc edi
mov dword [esp + 0x18], ebx
cmp edi, esi
jle 0x40bef0
mov eax, dword [esp + 0x34]
cmp esi, eax
je 0x409f94
cmp dword [esp + 0x30], 0
je 0x40f7e5
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.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
mov edi, dword [esp + 0x2c]
cmp esi, dword [esp + 0x34]
jge case.default.0x40b839
push dword [esp + 0x3c]
mov edx, ebx
mov ecx, edi
push dword [esp + 0x178]
push ebp
call fcn.00409d00
add esp, 0xc
test eax, eax
js 0x40f7af
mov edx, dword [esp + 0x14]
lea ebx, [ebx + eax*2]
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
inc esi
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x40bf75
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.00409d00
add esp, 0xc
test eax, eax
js 0x40f8c3
lea ebx, [ebx + eax*2]
mov ebp, esi
mov dword [esp + 0x18], ebx
jmp 0x409f9b
movzx edx, word [esi + 0x22]
lea ebp, [esi + 2]
add esi, 0x22
mov dword [esp + 0x34], ebp
mov ecx, edx
mov dword [esp + 0x14], esi
lea eax, [ecx - 0x62]
cmp eax, 7
ja case.default.0x40c036
movzx eax, byte [eax + 0x411b88]
jmp dword [eax*4 + 0x411b80]
movsx eax, byte [ecx + 0x509bda]
add esi, 2
mov edx, ecx
mov dword [esp + 0x14], esi
movsx esi, byte [ecx + 0x509be2]
and edx, 1
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], eax
inc esp
and al, 0x30
test eax, eax
jne 0x40c0a2
mov dword [esp + 0x30], connect
jmp 0x40c0a2
mov ecx, dword [esp + 0x14]
xor eax, eax
movzx esi, word [esi + 2]
cmp edx, 0x69
mov edx, SysReAllocString
mov dword [esp + 0x2c], esi
sete al
mov dword [esp + 0x28], eax
movzx eax, word [ecx + 4]
test eax, eax
cmove eax, edx
add ecx, 6
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], ecx
cmp esi, 1
jl 0x40c144
jmp 0x40c0be
mov esi, 1
mov dword [esp + 0x30], 1
mov dword [esp + 0x2c], esi
mov ecx, dword [esp + 0x174]
mov edi, 1
mov ebp, dword [ecx + 0x7c]
nop dword [eax]
cmp ebx, ebp
jae 0x40fad4
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40c110
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 + 0x18], ebx
cmp edx, 0xff
jbe 0x40c11f
cmp dword [esp + 0x20], 0x6a
jmp 0x40c135
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [esp + 0x34]
test byte [edx + ecx], al
je case.default.0x40b839
inc edi
cmp edi, esi
jle 0x40c0d0
mov ebp, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
cmp esi, edi
je 0x409f94
cmp dword [esp + 0x28], 0
je 0x40f952
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.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
cmp esi, edi
jge case.default.0x40b839
mov ecx, dword [esp + 0x174]
cmp ebx, dword [ecx + 0x7c]
jae 0x40fadb
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40c1de
movzx eax, word [ebx]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add ebx, 2
cmp edx, 0xff
jbe 0x40f8f2
cmp dword [esp + 0x20], 0x6a
je case.default.0x40b839
jmp 0x40f911
movzx eax, word [esi + 2]
lea ebp, [esi + 4]
movzx edx, word [esi + eax*2]
lea esi, [esi + eax*2]
mov ecx, edx
mov dword [esp + 0x44], ebp
mov dword [esp + 0x14], esi
lea eax, [ecx - 0x62]
cmp eax, 7
ja case.default.0x40c225
movzx eax, byte [eax + 0x411b98]
jmp dword [eax*4 + 0x411b90]
movsx eax, byte [ecx + 0x509bda]
mov edx, ecx
movsx edi, byte [ecx + 0x509be2]
add esi, 2
and edx, 1
mov dword [esp + 0x14], esi
mov dword [esp + 0x28], edx
mov dword [esp + 0x34], eax
test eax, eax
jne 0x40c285
mov dword [esp + 0x34], connect
jmp 0x40c285
movzx edi, word [esi + 2]
xor eax, eax
cmp edx, 0x69
mov ecx, SysReAllocString
sete al
mov dword [esp + 0x28], eax
movzx eax, word [esi + 4]
test eax, eax
cmove eax, ecx
add esi, 6
mov dword [esp + 0x34], eax
mov dword [esp + 0x14], esi
cmp edi, 1
jl 0x40c311
jmp 0x40c29d
mov dword [esp + 0x34], 1
mov edi, 1
mov esi, 1
nop dword [eax]
nop word [eax + eax]
mov ecx, dword [esp + 0x174]
cmp ebx, dword [ecx + 0x7c]
jae 0x40fadb
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40c2f8
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 + 0x18], ebx
push 1
mov edx, ebp
call fcn.00414820
add esp, 4
test eax, eax
je case.default.0x40b839
inc esi
cmp esi, edi
jle 0x40c2b0
mov esi, dword [esp + 0x34]
cmp edi, esi
je 0x409f94
cmp dword [esp + 0x28], 0
je 0x40faee
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.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
cmp edi, esi
jge case.default.0x40b839
mov ecx, dword [esp + 0x174]
cmp ebx, dword [ecx + 0x7c]
jae 0x40fadb
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40c3ab
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.00414820
add esp, 4
test eax, eax
je case.default.0x40b839
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
inc edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x40c363
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ax, word [esi + 2]
add esi, 2
mov ecx, 0xfc00
xor edx, edx
and ax, cx
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 0x40fc35
movzx ecx, word [esi]
dec edx
movzx eax, word [ebx]
add esi, 2
add ebx, 2
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], ebx
cmp cx, ax
jne case.default.0x40b839
test edx, edx
jg 0x40c434
jmp 0x409f9f
cmp ebx, dword [ebp + 0x7c]
jae 0x411261
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 0x40c4a0
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
mov edi, 4
add edx, 0x10000
jmp 0x40c4a5
mov edi, 2
movzx eax, word [ebx]
cmp edx, 0x80
jae 0x40c4db
mov edi, 0xff
mov ecx, eax
cmp ax, di
mov eax, dword [ebp + 0x34]
ja 0x40c4c3
movzx ecx, byte [ecx + eax]
movzx eax, byte [eax + edx]
cmp eax, ecx
jne case.default.0x40b839
add ebx, 2
mov dword [esp + 0x18], ebx
jmp 0x409f9f
mov esi, eax
add ebx, 2
and eax, 0xfc00
mov dword [esp + 0x18], ebx
cmp eax, 0xd800
jne 0x40c510
movzx eax, word [ebx]
and esi, 0x3ff
shl esi, 0xa
and eax, 0x3ff
add ebx, 2
or esi, eax
mov dword [esp + 0x18], ebx
add esi, 0x10000
lea eax, [edi + ecx]
mov dword [esp + 0x14], eax
cmp edx, esi
je 0x409f9b
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x5172a0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x50a8c0]
mov eax, dword [eax*8 + 0x5161c4]
add eax, edx
cmp esi, eax
jne case.default.0x40b839
jmp 0x409f9b
movzx edi, word [esi + 2]
lea ecx, [esi + 4]
mov ebp, edi
jmp 0x40c618
mov dword [esp + 0x30], 1
movzx edi, word [esi + 2]
xor ebp, ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], edi
cmp ecx, 0x28
je 0x40c585
mov dword [esp + 0x28], ebp
cmp ecx, 0x35
jne 0x40c58d
mov dword [esp + 0x28], 1
lea ecx, [esi + 4]
jmp 0x40c620
mov dword [esp + 0x30], 1
lea ecx, [esi + 2]
xor ebp, ebp
mov dword [esp + 0x20], connect
jmp 0x40c61c
mov dword [esp + 0x30], 1
lea ecx, [esi + 2]
mov ebp, 1
mov dword [esp + 0x20], connect
jmp 0x40c61c
mov dword [esp + 0x30], 1
lea ecx, [esi + 2]
xor ebp, ebp
mov dword [esp + 0x20], 1
jmp 0x40c61c
cmp edx, 0x2e
mov ecx, edx
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x2e
sub ecx, eax
mov eax, ecx
mov dword [esp + 0x28], ecx
and dword [esp + 0x28], 1
lea ecx, [esi + 2]
movsx edi, byte [eax + 0x509c3c]
movsx ebp, byte [eax + 0x509c44]
test edi, edi
mov eax, SysReAllocString
cmove edi, eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebp
movzx esi, word [ecx]
lea edi, [ecx + 2]
mov eax, esi
mov dword [esp + 0x1c], ecx
and eax, 0xfc00
mov dword [esp + 0x14], edi
cmp eax, 0xd800
jne 0x40ca2a
movzx eax, word [edi]
and esi, 0x3ff
shl esi, 0xa
and eax, 0x3ff
or esi, eax
mov dword [esp + 0x3c], 2
add esi, 0x10000
lea eax, [ecx + 4]
mov dword [esp + 0x14], eax
cmp edx, 0x2e
jb 0x40c6a9
mov eax, esi
shr eax, 7
movzx ecx, byte [eax + 0x5172a0]
mov eax, esi
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x50a8c0]
mov ecx, dword [eax*8 + 0x5161c4]
add ecx, esi
cmp ecx, esi
je 0x40c6a9
lea edx, [esp + 0x74]
call fcn.00414610
mov edi, eax
mov dword [esp + 0x2c], eax
jmp 0x40c6af
xor edi, edi
mov dword [esp + 0x2c], edi
mov esi, dword [esp + 0x24]
mov ebp, 1
cmp esi, ebp
jl 0x40c7f8
mov eax, dword [esp + 0x174]
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x3c], edx
mov ecx, dword [eax + 0x7c]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x14], esi
lea eax, [ecx - 4]
mov dword [esp + 0x44], eax
jmp 0x40c6f4
mov edi, dword [esp + 0x2c]
cmp ebx, eax
ja 0x40c75f
lea esi, [edx + edx]
mov ecx, ebx
mov edx, dword [esp + 0x1c]
sub esi, 4
jb 0x40c721
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x40c726
add ecx, 4
add edx, 4
sub esi, 4
jae 0x40c710
cmp esi, 0xfffffffc
je 0x40c753
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x40c75b
cmp esi, 0xfffffffd
je 0x40c753
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x40c75b
cmp esi, 0xfffffffe
je 0x40c753
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x40c75b
cmp esi, 0xffffffff
je 0x40c753
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x40c75b
add ebx, 4
jmp 0x40c7db
mov ecx, dword [esp + 0x34]
test edi, edi
jle 0x40f7af
add edi, edi
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x40f7af
mov esi, dword [esp + 0x2c]
lea edx, [esp + 0x74]
add esi, esi
mov ecx, ebx
sub esi, 4
jb 0x40c797
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x40c79c
add ecx, 4
add edx, 4
sub esi, 4
jae 0x40c786
cmp esi, 0xfffffffc
je 0x40c7d9
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x40f7af
cmp esi, 0xfffffffd
je 0x40c7d9
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x40f7af
cmp esi, 0xfffffffe
je 0x40c7d9
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x40f7af
cmp esi, 0xffffffff
je 0x40c7d9
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x40f7af
add ebx, edi
mov esi, dword [esp + 0x24]
inc ebp
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x18], ebx
cmp ebp, esi
jle 0x40c6f0
mov edi, dword [esp + 0x20]
cmp esi, edi
je 0x409f94
cmp dword [esp + 0x28], 0
jne 0x40fc50
mov ebp, ebx
mov dword [esp + 0x28], ebp
cmp esi, edi
jge 0x40c94c
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x3c]
mov eax, dword [eax + 0x7c]
mov ebp, eax
lea edi, [ecx + ecx]
mov dword [esp + 0x34], eax
mov dword [esp + 0x44], edi
sub ebp, edi
nop word [eax + eax]
cmp ebx, ebp
ja 0x40c8a4
mov edx, dword [esp + 0x1c]
lea esi, [ecx + ecx]
mov ecx, ebx
sub esi, 4
jb 0x40c867
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x40c86c
add ecx, 4
add edx, 4
sub esi, 4
jae 0x40c856
cmp esi, 0xfffffffc
je 0x40c899
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x40c8a0
cmp esi, 0xfffffffd
je 0x40c899
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x40c8a0
cmp esi, 0xfffffffe
je 0x40c899
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x40c8a0
cmp esi, 0xffffffff
je 0x40c899
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x40c8a0
add ebx, edi
jmp 0x40c929
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jle 0x40c9f3
lea edi, [ecx + ecx]
sub eax, edi
cmp ebx, eax
ja 0x40c9f3
lea esi, [ecx + ecx]
mov ecx, ebx
lea edx, [esp + 0x74]
sub esi, 4
jb 0x40c8e1
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x40c8e6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x40c8d0
cmp esi, 0xfffffffc
je 0x40c923
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x40c9f3
cmp esi, 0xfffffffd
je 0x40c923
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x40c9f3
cmp esi, 0xfffffffe
je 0x40c923
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x40c9f3
cmp esi, 0xffffffff
je 0x40c923
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x40c9f3
add ebx, edi
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
inc esi
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], esi
cmp esi, dword [esp + 0x20]
jl 0x40c840
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x174]
cmp dword [esp + 0x30], 0
jne 0x409f94
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.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
cmp ebx, ebp
je case.default.0x40b839
mov ax, word [ebx - 2]
add ebx, 0xfffffffe
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x40c9b9
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.00409eb0
add esp, 0x14
test eax, eax
je 0x40c995
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 0x40ca21
cmp ebx, dword [esi + 0x7c]
jb 0x40ca21
cmp ebx, dword [esi + 0x88]
jbe 0x40ca21
mov dword [esi + 0x64], 1
cmp eax, 1
jg 0x411290
mov ebp, dword [esp + 0x28]
jmp 0x40c953
cmp edx, 0x2e
jb 0x40cb8d
mov edx, dword [esp + 0x174]
cmp esi, 0x7f
jbe 0x40ca68
mov eax, esi
shr eax, 7
movzx ecx, byte [eax + 0x5172a0]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x50a8c0]
mov edi, dword [eax*8 + 0x5161c4]
add edi, esi
jmp 0x40ca6f
mov eax, dword [edx + 0x38]
movzx edi, byte [eax + esi]
mov ecx, 1
cmp ebp, ecx
jl 0x40caab
mov edx, dword [edx + 0x7c]
nop dword [eax + eax]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
cmp ebx, edx
jae 0x40fad4
movzx eax, word [ebx]
cmp esi, eax
je 0x40ca9f
cmp edi, eax
jne case.default.0x40b839
add ebx, 2
inc ecx
mov dword [esp + 0x18], ebx
cmp ecx, ebp
jle 0x40ca80
mov eax, dword [esp + 0x20]
cmp ebp, eax
je 0x409f94
cmp dword [esp + 0x28], 0
jne 0x40fe2d
mov edx, dword [esp + 0x24]
mov ebp, ebx
cmp edx, eax
jge 0x40caf7
mov eax, dword [esp + 0x174]
mov ecx, dword [eax + 0x7c]
cmp ebx, ecx
jae 0x40cb5f
movzx eax, word [ebx]
cmp esi, eax
je 0x40cae9
cmp edi, eax
jne 0x40caf7
add ebx, 2
inc edx
mov dword [esp + 0x18], ebx
cmp edx, dword [esp + 0x20]
jl 0x40cad6
mov ecx, dword [esp + 0x174]
cmp dword [esp + 0x30], 0
jne 0x409f94
cmp ebx, ebp
jb case.default.0x40b839
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.00409eb0
add esp, 0x14
sub ebx, 2
test eax, eax
jne 0x40f504
mov ecx, dword [esp + 0x174]
cmp ebx, ebp
jae 0x40cb11
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 0x40cafe
cmp ebx, dword [ecx + 0x88]
jbe 0x40cafe
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x411290
jmp 0x40cafe
mov edi, dword [esp + 0x174]
mov ecx, 1
cmp ebp, ecx
jl 0x40cbbf
mov edx, dword [edi + 0x7c]
cmp ebx, edx
jae 0x40fedd
movzx eax, word [ebx]
add ebx, 2
mov dword [esp + 0x18], ebx
cmp esi, eax
jne case.default.0x40b839
inc ecx
cmp ecx, ebp
jle 0x40cba0
mov edx, dword [esp + 0x20]
cmp ebp, edx
je 0x409f94
cmp dword [esp + 0x28], 0
jne 0x40ff03
mov edi, ebx
cmp ebp, edx
jge 0x40cc01
mov eax, dword [esp + 0x174]
mov ecx, dword [eax + 0x7c]
cmp ebx, ecx
jae 0x40cc67
movzx eax, word [ebx]
cmp esi, eax
jne 0x40cc01
add ebx, 2
inc ebp
mov dword [esp + 0x18], ebx
cmp ebp, edx
jl 0x40cbe6
mov ebp, dword [esp + 0x174]
cmp dword [esp + 0x30], 0
jne 0x409f9b
cmp ebx, edi
jb case.default.0x40b839
nop dword [eax + 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.00409eb0
add esp, 0x14
sub ebx, 2
test eax, eax
jne 0x40f504
cmp ebx, edi
jae 0x40cc20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ebp, dword [esp + 0x174]
mov eax, dword [ebp + 0x8c]
test eax, eax
je 0x40cc08
cmp ebx, dword [ebp + 0x88]
jbe 0x40cc08
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x411290
jmp 0x40cc08
cmp ebx, dword [ebp + 0x7c]
jae 0x411261
movzx edx, word [ebx]
lea ecx, [esi + 2]
mov eax, edx
add ebx, 2
and eax, 0xfc00
mov dword [esp + 0x18], ebx
cmp eax, 0xd800
jne 0x40ccd9
movzx eax, word [ebx]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
add ebx, 2
or edx, eax
mov dword [esp + 0x18], ebx
add edx, 0x10000
movzx esi, word [ecx]
lea eax, [ecx + 2]
mov dword [esp + 0x14], eax
cmp edi, 0x20
jne 0x40cd36
cmp esi, 0x7f
jbe 0x40cd1a
mov eax, esi
shr eax, 7
movzx ecx, byte [eax + 0x5172a0]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x50a8c0]
mov eax, dword [eax*8 + 0x5161c4]
add eax, esi
jmp 0x40cd21
mov eax, dword [ebp + 0x38]
movzx eax, byte [eax + esi]
cmp esi, edx
je case.default.0x40b839
cmp eax, edx
je case.default.0x40b839
jmp 0x409f9b
mov dword [esp + 0x14], eax
cmp esi, edx
je case.default.0x40b839
jmp 0x409f9b
movzx eax, word [esi + 2]
lea ecx, [esi + 4]
mov dword [esp + 0x20], eax
mov edi, eax
jmp 0x40ce17
movzx eax, word [esi + 2]
xor edi, edi
mov dword [esp + 0x20], eax
cmp ecx, 0x42
je 0x40cd71
mov dword [esp + 0x28], edi
cmp ecx, 0x4f
jne 0x40cd79
mov dword [esp + 0x28], 1
lea ecx, [esi + 4]
jmp 0x40ce17
mov dword [esp + 0x30], 1
lea ecx, [esi + 2]
xor edi, edi
jmp 0x40ce0f
mov dword [esp + 0x30], 1
lea ecx, [esi + 2]
mov edi, 1
jmp 0x40ce0f
mov dword [esp + 0x30], 1
lea ecx, [esi + 2]
xor edi, edi
mov dword [esp + 0x20], 1
jmp 0x40ce17
movzx eax, word [esi + 2]
lea ecx, [esi + 4]
mov dword [esp + 0x30], 1
xor edi, edi
mov dword [esp + 0x20], eax
jmp 0x40ce17
cmp edx, 0x48
mov ecx, edx
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x48
sub ecx, eax
mov eax, ecx
mov dword [esp + 0x28], ecx
and dword [esp + 0x28], 1
lea ecx, [esi + 2]
movsx edi, byte [eax + 0x509c44]
movsx eax, byte [eax + 0x509c3c]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x40ce17
mov dword [esp + 0x20], connect
movzx ebp, word [ecx]
add ecx, 2
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x14], ecx
cmp edx, 0x48
jb 0x40cfc0
cmp ebp, 0x7f
jbe 0x40ce69
mov eax, ebp
shr eax, 7
movzx ecx, byte [eax + 0x5172a0]
mov eax, ebp
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x50a8c0]
mov ecx, dword [esp + 0x174]
mov ebp, dword [eax*8 + 0x5161c4]
add ebp, dword [esp + 0x2c]
jmp 0x40ce77
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x38]
movzx ebp, byte [eax + ebp]
mov dword [esp + 0x34], ebp
cmp edi, 1
jl 0x40cee7
mov esi, dword [ecx + 0x7c]
mov edx, 1
nop dword [eax]
cmp ebx, esi
jae 0x40fad4
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40ced0
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 + 0x18], ebx
cmp dword [esp + 0x2c], ecx
je case.default.0x40b839
cmp ebp, ecx
je case.default.0x40b839
inc edx
cmp edx, edi
jle 0x40ce90
mov esi, dword [esp + 0x20]
cmp edi, esi
je 0x409f94
cmp dword [esp + 0x28], 0
jne 0x410033
mov ecx, dword [esp + 0x174]
mov ebp, ebx
cmp edi, esi
jge 0x40cf70
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x40cf8b
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40cf4f
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 + 0x2c], ecx
je 0x40cf69
cmp dword [esp + 0x34], ecx
je 0x40cf69
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x20]
jl 0x40cf12
mov ecx, dword [esp + 0x174]
cmp dword [esp + 0x30], 0
mov esi, dword [esp + 0x14]
je 0x40ff9a
mov ebp, dword [esp + 0x174]
jmp 0x409f9f
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x40cf70
cmp ebx, dword [ecx + 0x88]
jbe 0x40cf70
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x411290
jmp 0x40cf70
mov edx, 1
cmp edi, edx
jl 0x40d028
mov ecx, dword [esp + 0x174]
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x40fad4
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40d017
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 + 0x18], ebx
cmp ebp, ecx
je case.default.0x40b839
inc edx
cmp edx, edi
jle 0x40cfd7
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
cmp edi, esi
je 0x409f94
cmp dword [esp + 0x28], 0
jne 0x4101d3
mov ecx, dword [esp + 0x174]
mov ebp, ebx
cmp edi, esi
jge 0x40d0ab
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x40d0c6
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40d090
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 + 0x2c], ecx
je 0x40d0a4
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x20]
jl 0x40d053
mov ecx, dword [esp + 0x174]
cmp dword [esp + 0x30], 0
mov esi, dword [esp + 0x14]
je 0x410135
mov ebp, dword [esp + 0x174]
jmp 0x409f9f
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x40d0ab
cmp ebx, dword [ecx + 0x88]
jbe 0x40d0ab
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x411290
jmp 0x40d0ab
movzx eax, word [esi + 2]
mov edi, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edi
lea eax, [esi + 4]
mov dword [esp + 0x28], 1
jmp 0x40d1cb
movzx eax, word [esi + 2]
xor edx, edx
xor edi, edi
mov dword [esp + 0x24], eax
cmp ecx, 0x5c
mov dword [esp + 0x20], edi
lea eax, [esi + 4]
sete dl
mov dword [esp + 0x28], edx
jmp 0x40d1cb
xor edi, edi
mov dword [esp + 0x30], 1
mov dword [esp + 0x20], edi
lea eax, [esi + 2]
jmp 0x40d1c3
mov edi, 1
mov dword [esp + 0x30], 1
mov dword [esp + 0x20], edi
lea eax, [esi + 2]
jmp 0x40d1c3
xor edi, edi
mov dword [esp + 0x30], 1
mov dword [esp + 0x20], edi
lea eax, [esi + 2]
mov dword [esp + 0x24], 1
jmp 0x40d1cb
movzx eax, word [esi + 2]
xor edi, edi
mov dword [esp + 0x24], eax
lea eax, [esi + 4]
mov dword [esp + 0x30], 1
mov dword [esp + 0x20], edi
jmp 0x40d1cb
movsx edi, byte [edx + 0x509bef]
lea ecx, [edx - 1]
and ecx, 1
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], ecx
lea eax, [esi + 2]
movsx ecx, byte [edx + 0x509be7]
mov dword [esp + 0x24], ecx
test ecx, ecx
jne 0x40d1cb
mov dword [esp + 0x24], connect
movzx esi, word [eax]
lea edx, [eax + 2]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], edx
cmp esi, 0x10
je 0x40d1ec
cmp esi, 0xf
je 0x40d1ec
or eax, 0xffffffff
mov dword [esp + 0x2c], eax
jmp 0x40d212
movzx ecx, word [edx]
xor eax, eax
cmp esi, 0xf
mov dword [esp + 0x2c], ecx
sete al
mov dword [esp + 0x38], eax
lea eax, [edx + 2]
movzx edx, word [eax]
add eax, 2
mov dword [esp + 0x14], eax
mov eax, ecx
mov dword [esp + 0x40], edx
test edi, edi
jle 0x40dec0
test eax, eax
js 0x40d778
cmp eax, 8
ja case.default.0x40bba1
jmp dword [eax*4 + 0x411ba0]
cmp dword [esp + 0x38], 0
jne case.default.0x40b839
mov esi, dword [ebp + 0x7c]
mov edx, 1
mov ecx, ebx
cmp ebx, esi
jae 0x411261
mov ax, word [ebx]
mov ebx, 0xfc00
and ax, bx
xor ebx, ebx
cmp ax, word [esp + 0x50]
sete bl
inc edx
lea ebx, [ebx*2 + 2]
add ebx, ecx
cmp edx, edi
jle 0x40d245
mov dword [esp + 0x18], ebx
jmp 0x40deb4
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x411261
movzx ecx, word [ebx]
add ebx, 2
add cl, byte [ebx - 0x3ffda3f]
add byte [eax], al
cmp eax, 0xd800
jne 0x40d2bb
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 + 0x5172a0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x50a8c0]
mov al, byte [eax*8 + 0x5161c1]
cmp al, 9
je 0x40d2ee
cmp al, 5
je 0x40d2ee
cmp al, 8
je 0x40d2ee
xor eax, eax
jmp 0x40d2f3
mov eax, 1
cmp eax, dword [esp + 0x38]
je case.default.0x40b839
inc edx
cmp edx, edi
jle 0x40d283
mov dword [esp + 0x18], ebx
jmp 0x40deb4
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x411261
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40d34b
movzx eax, word [ebx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ebx, 2
add ecx, 0x10000
mov ebp, dword [esp + 0x40]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x5172a0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
cmp dword [eax*4 + 0x509f90], ebp
mov ebp, dword [esp + 0x174]
sete cl
cmp ecx, dword [esp + 0x38]
je case.default.0x40b839
inc edx
cmp edx, edi
jle 0x40d313
mov dword [esp + 0x18], ebx
jmp 0x40deb4
mov esi, dword [ebp + 0x7c]
mov edx, 1
nop word [eax + eax]
cmp ebx, esi
jae 0x411261
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40d3e8
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
mov ebp, dword [esp + 0x174]
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x5172a0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
cmp eax, dword [esp + 0x40]
sete cl
cmp ecx, dword [esp + 0x38]
je case.default.0x40b839
inc edx
cmp edx, edi
jle 0x40d3b0
mov dword [esp + 0x18], ebx
jmp 0x40deb4
mov esi, dword [ebp + 0x7c]
mov edx, 1
nop dword [eax]
cmp ebx, esi
jae 0x411261
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40d478
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
mov ebp, dword [esp + 0x174]
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x5172a0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c0]
cmp eax, dword [esp + 0x40]
sete cl
cmp ecx, dword [esp + 0x38]
je case.default.0x40b839
inc edx
cmp edx, edi
jle 0x40d440
mov dword [esp + 0x18], ebx
jmp 0x40deb4
mov esi, dword [ebp + 0x7c]
mov edx, 1
nop dword [eax]
cmp ebx, esi
jae 0x411261
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40d508
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 + 0x5172a0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
mov eax, dword [eax*4 + 0x509f90]
cmp eax, 1
je 0x40d541
cmp eax, 3
je 0x40d541
xor eax, eax
jmp 0x40d546
mov eax, 1
cmp eax, dword [esp + 0x38]
je case.default.0x40b839
inc edx
cmp edx, edi
jle 0x40d4d0
mov dword [esp + 0x18], ebx
jmp 0x40deb4
mov edi, dword [ebp + 0x7c]
mov esi, 1
mov ebp, dword [esp + 0x20]
nop
cmp ebx, edi
jae 0x40fad4
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40d5a8
movzx eax, word [ebx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add ebx, 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x5172a0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
cmp dword [eax*4 + 0x509f90], 6
je 0x40d5f0
cmp edx, 9
je 0x40d5f0
cmp edx, 0xa
je 0x40d5f0
cmp edx, 0xc
je 0x40d5f0
cmp edx, 0xd
je 0x40d5f0
xor eax, eax
jmp 0x40d5f5
mov eax, 1
cmp eax, dword [esp + 0x38]
je case.default.0x40b839
inc esi
cmp esi, ebp
jle 0x40d570
mov edi, dword [esp + 0x20]
mov dword [esp + 0x18], ebx
jmp 0x40deb4
mov edi, dword [ebp + 0x7c]
mov esi, 1
mov ebp, dword [esp + 0x20]
cmp ebx, edi
jae 0x40fad4
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40d659
movzx eax, word [ebx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add ebx, 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x5172a0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
cmp dword [eax*4 + 0x509f90], 6
je 0x40d6a6
cmp edx, 9
je 0x40d6a6
cmp edx, 0xa
je 0x40d6a6
cmp edx, 0xb
je 0x40d6a6
cmp edx, 0xc
je 0x40d6a6
cmp edx, 0xd
je 0x40d6a6
xor eax, eax
jmp 0x40d6ab
mov eax, 1
cmp eax, dword [esp + 0x38]
je case.default.0x40b839
inc esi
cmp esi, ebp
jle 0x40d621
mov edi, dword [esp + 0x20]
mov dword [esp + 0x18], ebx
jmp 0x40deb4
mov edi, dword [ebp + 0x7c]
mov esi, 1
mov ebp, dword [esp + 0x20]
cmp ebx, edi
jae 0x40fad4
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40d717
movzx eax, word [ebx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
add ebx, 2
or edx, eax
mov dword [esp + 0x18], ebx
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x5172a0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
mov eax, dword [eax*4 + 0x509f90]
cmp eax, 1
je 0x40d757
cmp eax, 3
je 0x40d757
cmp edx, 0x5f
je 0x40d757
xor eax, eax
jmp 0x40d75c
mov eax, 1
cmp eax, dword [esp + 0x38]
je case.default.0x40b839
inc esi
cmp esi, ebp
jle 0x40d6d7
mov edi, dword [esp + 0x20]
jmp 0x40deb4
cmp esi, 0x16
jne 0x40d893
lea ebp, [esi - 0x15]
nop dword [eax]
nop dword [eax + eax]
mov esi, dword [esp + 0x174]
cmp ebx, dword [esi + 0x7c]
jae 0x4102a5
movzx ecx, word [ebx]
lea edx, [ebx + 2]
mov eax, ecx
mov ebx, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40d7d2
movzx eax, word [edx]
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 + 0x5172a0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
cmp dword [eax*4 + 0x509f90], 2
je case.default.0x40b839
mov esi, dword [esi + 0x7c]
cmp ebx, esi
jae 0x40d881
mov edi, ebx
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40d846
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 + 0x5172a0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
cmp dword [eax*4 + 0x509f90], 2
jne 0x40d87d
lea ebx, [edi + edx*2]
mov edi, ebx
cmp ebx, esi
jb 0x40d811
mov edi, dword [esp + 0x20]
inc ebp
cmp ebp, edi
jle 0x40d790
mov dword [esp + 0x18], ebx
jmp 0x40deb4
lea eax, [esi - 6]
cmp eax, 0xf
ja case.default.0x40bba1
jmp dword [eax*4 + 0x411bc4]
mov ecx, dword [ebp + 0x7c]
mov esi, 1
nop
cmp ebx, ecx
jae 0x411261
mov edx, dword [ebp + 0x18]
lea eax, [ebp + 0x1c]
test edx, edx
je 0x40d8da
push 1
push eax
push ecx
mov ecx, ebx
call fcn.00414670
add esp, 0xc
test eax, eax
jne case.default.0x40b839
jmp 0x40d905
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja 0x40d905
mov ax, word [ebx]
cmp ax, word [ebp + 0x2c]
jne 0x40d905
cmp edx, 1
je case.default.0x40b839
mov ax, word [ebx + 2]
cmp ax, word [ebp + 0x2e]
je case.default.0x40b839
mov ecx, dword [ebp + 0x7c]
add ebx, 2
cmp ebx, ecx
jae 0x40d927
mov ax, word [ebx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x40d927
add ebx, 2
inc esi
cmp esi, edi
jle 0x40d8b0
mov dword [esp + 0x18], ebx
jmp 0x40deb4
mov edx, dword [ebp + 0x7c]
mov ecx, 1
nop dword [eax]
cmp ebx, edx
jae 0x411261
add ebx, 2
cmp ebx, edx
jae 0x40d961
mov ax, word [ebx]
and ax, word [esp + 0x68]
cmp ax, word [esp + 0x48]
jne 0x40d961
add ebx, 2
inc ecx
cmp ecx, edi
jle 0x40d940
mov dword [esp + 0x18], ebx
jmp 0x40dec0
mov eax, dword [ebp + 0x7c]
lea ecx, [edi + edi]
sub eax, ecx
cmp ebx, eax
ja case.default.0x40b839
add ebx, ecx
mov dword [esp + 0x18], ebx
jmp 0x40dec0
mov edi, dword [ebp + 0x7c]
mov esi, 1
mov ebp, dword [esp + 0x20]
cmp ebx, edi
jae 0x40fad4
movzx ecx, word [ebx]
lea edx, [ebx + 2]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40d9ce
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 0x40da13
je case.0x40d9ec.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x40b839
jmp dword [ecx*4 + 0x411c04]
mov ebx, edx
cmp edx, edi
jae 0x40da37
cmp word [edx], 0xa
jne 0x40da37
lea ebx, [edx + 2]
jmp 0x40da37
mov ebx, edx
jmp 0x40da37
sub ecx, 0x2028
je case.0x40d9ec.11
sub ecx, 1
jne case.default.0x40b839
mov eax, dword [esp + 0x174]
mov ebx, edx
cmp dword [eax + 0x68], 0
jne case.default.0x40b839
inc esi
cmp esi, ebp
jle 0x40d996
mov edi, dword [esp + 0x20]
mov dword [esp + 0x18], ebx
jmp 0x40deb4
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x411261
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40da8d
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 0x40dae7
je case.default.0x40b839
cmp ecx, 0xa0
ja 0x40dacd
je case.default.0x40b839
cmp ecx, 9
je case.default.0x40b839
cmp ecx, 0x20
je case.default.0x40b839
inc edx
cmp edx, edi
jle 0x40da55
mov dword [esp + 0x18], ebx
jmp 0x40deb4
cmp ecx, 0x1680
je case.default.0x40b839
cmp ecx, 0x180e
je case.default.0x40b839
jmp case.0x40db07.8203
cmp ecx, 0x3000
ja case.0x40db07.8203
je case.default.0x40b839
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x40db07.8203
movzx eax, byte [ecx + 0x411c1c]
jmp dword [eax*4 + 0x411c14]
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x411261
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40db4e
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 0x40db98
je case.0x40dbbc.8193
cmp ecx, 0xa0
ja 0x40db82
je case.0x40dbbc.8193
cmp ecx, 9
je case.0x40dbbc.8193
cmp ecx, 0x20
jne case.default.0x40b839
inc edx
cmp edx, edi
jle 0x40db16
mov dword [esp + 0x18], ebx
jmp 0x40deb4
cmp ecx, 0x1680
je case.0x40dbbc.8193
cmp ecx, 0x180e
jne case.default.0x40b839
jmp case.0x40dbbc.8193
cmp ecx, 0x3000
ja case.default.0x40b839
je case.0x40dbbc.8193
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x40b839
movzx eax, byte [ecx + 0x411c84]
jmp dword [eax*4 + 0x411c7c]
mov esi, dword [ebp + 0x7c]
mov edx, 1
nop dword [eax + eax]
cmp ebx, esi
jae 0x411261
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40dc0c
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 0x40dc29
je case.default.0x40b839
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x40dc22
jmp dword [ecx*4 + 0x411ce4]
sub ecx, 0x2028
je case.default.0x40b839
sub ecx, 1
je case.default.0x40b839
inc edx
cmp edx, edi
jle 0x40dbd0
mov dword [esp + 0x18], ebx
jmp 0x40deb4
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x411261
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40dc90
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 0x40dcb1
je case.0x40dcaa.10
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x40b839
jmp dword [ecx*4 + 0x411cf4]
sub ecx, 0x2028
je case.0x40dcaa.10
sub ecx, 1
jne case.default.0x40b839
inc edx
cmp edx, edi
jle 0x40dc54
mov dword [esp + 0x18], ebx
jmp 0x40deb4
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x411261
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40dd14
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 0x40dd29
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 4
jne case.default.0x40b839
inc edx
cmp edx, edi
jle 0x40dcd8
mov dword [esp + 0x18], ebx
jmp 0x40deb4
mov esi, dword [ebp + 0x7c]
mov edx, 1
nop
cmp ebx, esi
jae 0x411261
movzx eax, word [ebx]
mov ecx, 0x80
cmp ax, cx
jae case.default.0x40b839
mov ecx, eax
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 4
je case.default.0x40b839
inc edx
add ebx, 2
cmp edx, edi
jle 0x40dd40
mov dword [esp + 0x18], ebx
jmp 0x40deb4
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x411261
movzx eax, word [ebx]
mov ecx, 0x80
cmp ax, cx
jae 0x40dda5
mov ecx, eax
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 1
jne case.default.0x40b839
add ebx, 2
cmp ebx, esi
jae 0x40ddc8
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x40ddc8
add ebx, 2
inc edx
cmp edx, edi
jle 0x40dd81
mov dword [esp + 0x18], ebx
jmp 0x40deb4
mov esi, dword [ebp + 0x7c]
mov edx, 1
nop
cmp ebx, esi
jae 0x411261
movzx eax, word [ebx]
mov ecx, 0x80
cmp ax, cx
jae case.default.0x40b839
mov ecx, eax
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 1
je case.default.0x40b839
inc edx
add ebx, 2
cmp edx, edi
jle 0x40dde0
mov dword [esp + 0x18], ebx
jmp 0x40deb4
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x411261
movzx eax, word [ebx]
mov ecx, 0x80
cmp ax, cx
jae 0x40de45
mov ecx, eax
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
jne case.default.0x40b839
add ebx, 2
cmp ebx, esi
jae 0x40de68
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x40de68
add ebx, 2
inc edx
cmp edx, edi
jle 0x40de21
mov dword [esp + 0x18], ebx
jmp 0x40deb4
mov esi, dword [ebp + 0x7c]
mov edx, 1
nop
cmp ebx, esi
jae 0x411261
movzx eax, word [ebx]
mov ecx, 0x80
cmp ax, cx
jae case.default.0x40b839
mov ecx, eax
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
je case.default.0x40b839
add ebx, 2
inc edx
mov dword [esp + 0x18], ebx
cmp edx, edi
jle 0x40de80
mov esi, dword [esp + 0x1c]
nop dword [eax + eax]
mov edx, dword [esp + 0x24]
cmp edi, edx
je 0x409f94
cmp dword [esp + 0x28], 0
mov eax, dword [esp + 0x2c]
jne 0x410399
mov ebp, ebx
mov dword [esp + 0x28], ebp
test eax, eax
js 0x40e5d2
cmp eax, 8
ja case.default.0x40bba1
jmp dword [eax*4 + 0x411d04]
mov ecx, dword [esp + 0x174]
cmp edi, edx
jge 0x40e5b7
mov edx, dword [ecx + 0x7c]
mov esi, 0xd800
cmp ebx, edx
jae 0x40df4f
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
cmp dword [esp + 0x38], 0
movzx ecx, ax
jne 0x40e5b0
xor eax, eax
cmp cx, si
sete al
inc edi
lea ebx, [ebx + eax*2]
add ebx, 2
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x40df10
jmp 0x40e5b0
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x40e5b7
cmp ebx, dword [ecx + 0x88]
jbe 0x40e5b7
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x411290
jmp 0x40e5b7
cmp edi, edx
jge 0x40e5b0
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x40df4f
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40dfd4
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 + 0x5172a0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x50a8c0]
mov al, byte [eax*8 + 0x5161c1]
cmp al, 9
je 0x40e012
cmp al, 5
je 0x40e012
cmp al, 8
je 0x40e012
xor eax, eax
jmp 0x40e017
mov eax, 1
cmp eax, dword [esp + 0x38]
je 0x40e5b0
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x40df97
jmp 0x40e5b0
cmp edi, edx
jge 0x40e5b0
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
nop word [eax + eax]
cmp ebx, esi
jae 0x40df4f
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40e091
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov ebp, dword [esp + 0x40]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x5172a0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
cmp dword [eax*4 + 0x509f90], ebp
mov ebp, dword [esp + 0x28]
sete cl
cmp ecx, dword [esp + 0x38]
je 0x40e5b0
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x40e050
jmp 0x40e5b0
cmp edi, edx
jge 0x40e5b0
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
nop dword [eax]
cmp ebx, esi
jae 0x40df4f
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40e141
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 + 0x5172a0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
cmp eax, dword [esp + 0x40]
sete cl
cmp ecx, dword [esp + 0x38]
je 0x40e5b0
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x40e100
jmp 0x40e5b0
cmp edi, edx
jge 0x40e5b0
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x40df4f
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40e1e2
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 + 0x5172a0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c0]
cmp eax, dword [esp + 0x40]
sete cl
cmp ecx, dword [esp + 0x38]
je 0x40e5b0
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x40e1a1
jmp 0x40e5b0
cmp edi, edx
jge 0x40e5b0
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x40df4f
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40e283
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 + 0x5172a0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
mov eax, dword [eax*4 + 0x509f90]
cmp eax, 1
je 0x40e2c7
cmp eax, 3
je 0x40e2c7
xor eax, eax
jmp 0x40e2cc
mov eax, 1
cmp eax, dword [esp + 0x38]
je 0x40e5b0
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x40e242
jmp 0x40e5b0
cmp edi, edx
jge 0x40e5b0
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
nop
mov esi, 1
cmp ebx, edi
jae 0x40e3ce
movzx edx, word [ebx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40e341
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 + 0x5172a0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
cmp dword [eax*4 + 0x509f90], 6
je 0x40e3a0
cmp edx, 9
je 0x40e3a0
cmp edx, 0xa
je 0x40e3a0
cmp edx, 0xc
je 0x40e3a0
cmp edx, 0xd
je 0x40e3a0
xor eax, eax
jmp 0x40e3a5
mov eax, 1
cmp eax, dword [esp + 0x38]
je 0x40e5b0
mov eax, dword [esp + 0x20]
lea ebx, [ebx + esi*2]
inc eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0x24]
jl 0x40e300
jmp 0x40e5b0
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x40e5b7
cmp ebx, dword [ecx + 0x88]
jbe 0x40e5b7
mov dword [ecx + 0x64], esi
cmp eax, 1
jg 0x411290
jmp 0x40e5b7
cmp edi, edx
jge 0x40e5b0
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
mov esi, 1
cmp ebx, edi
jae 0x40e3ce
movzx edx, word [ebx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40e44f
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 + 0x5172a0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
cmp dword [eax*4 + 0x509f90], 6
je 0x40e4b7
cmp edx, 9
je 0x40e4b7
cmp edx, 0xa
je 0x40e4b7
cmp edx, 0xb
je 0x40e4b7
cmp edx, 0xc
je 0x40e4b7
cmp edx, 0xd
je 0x40e4b7
xor eax, eax
jmp 0x40e4bc
mov eax, 1
cmp eax, dword [esp + 0x38]
je 0x40e5b0
mov eax, dword [esp + 0x20]
lea ebx, [ebx + esi*2]
inc eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0x24]
jl 0x40e412
jmp 0x40e5b0
cmp edi, edx
jge 0x40e5b0
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
cmp ebx, edi
jae 0x40df4f
movzx edx, word [ebx]
mov esi, 1
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40e538
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 + 0x5172a0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
mov eax, dword [eax*4 + 0x509f90]
cmp eax, 1
je 0x40e587
cmp eax, 3
je 0x40e587
cmp edx, 0x5f
je 0x40e587
xor eax, eax
jmp 0x40e58c
mov eax, 1
cmp eax, dword [esp + 0x38]
je 0x40e5b0
mov eax, dword [esp + 0x20]
lea ebx, [ebx + esi*2]
inc eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0x24]
jl 0x40e4f7
mov ecx, dword [esp + 0x174]
cmp dword [esp + 0x30], 0
mov esi, dword [esp + 0x14]
je 0x4102b8
mov ebp, dword [esp + 0x174]
jmp 0x409f9f
cmp esi, 0x16
jne 0x40e829
cmp edi, edx
mov edi, dword [esp + 0x174]
jge 0x40e745
mov ebp, dword [edi + 0x7c]
nop dword [eax]
cmp ebx, ebp
jae 0x40e717
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40e631
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 + 0x5172a0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
cmp dword [eax*4 + 0x509f90], 2
je 0x40e741
mov edi, dword [edi + 0x7c]
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp ebx, edi
jae 0x40e6f8
mov esi, ebx
nop word [eax + eax]
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40e6b9
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 + 0x5172a0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
cmp dword [eax*4 + 0x509f90], 2
jne 0x40e6f4
lea ebx, [esi + edx*2]
mov esi, ebx
cmp ebx, edi
jb 0x40e680
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x174]
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0x24]
jl 0x40e5f0
jmp 0x40e741
mov eax, dword [edi + 0x8c]
test eax, eax
je 0x40e741
cmp ebx, dword [edi + 0x88]
jbe 0x40e741
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x411290
mov ebp, dword [esp + 0x28]
cmp dword [esp + 0x30], 0
jne 0x409f94
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, ebp
je case.default.0x40b839
mov ebp, 0xdc00
movzx eax, word [ebx]
mov edx, ebx
mov ecx, eax
and ecx, 0xfc00
movzx edi, cx
cmp cx, bp
jne 0x40e7b7
movzx eax, word [edx - 2]
lea ebx, [edx - 2]
cmp di, bp
movzx ecx, ax
lea esi, [edx - 2]
mov eax, ecx
cmovne esi, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40e7ef
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 + 0x5172a0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
cmp dword [eax*4 + 0x509f90], 2
jne 0x41034f
lea ebx, [esi - 2]
jmp 0x40e797
lea eax, [esi - 6]
cmp eax, 0xf
ja case.default.0x40bba1
jmp dword [eax*4 + 0x411d28]
cmp edx, 0x7fffffff
jge 0x40e91b
cmp edi, edx
jge 0x40ec91
mov eax, dword [esp + 0x174]
mov ecx, dword [eax + 0x7c]
nop word [eax + eax]
cmp ebx, ecx
jae 0x40e9e0
mov edx, dword [eax + 0x18]
add eax, 0x1c
test edx, edx
je 0x40e898
push 1
push eax
push ecx
mov ecx, ebx
call fcn.00414670
mov ecx, dword [esp + 0x180]
add esp, 0xc
test eax, eax
jne 0x40ec98
jmp 0x40e8d2
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
mov ecx, dword [esp + 0x174]
ja 0x40e8d2
mov ax, word [ebx]
cmp ax, word [ecx + 0x2c]
jne 0x40e8d2
cmp edx, 1
je 0x40ec98
mov ax, word [ebx + 2]
cmp ax, word [ecx + 0x2e]
je 0x40ec98
mov ecx, dword [ecx + 0x7c]
add ebx, 2
mov dword [esp + 0x18], ebx
cmp ebx, ecx
jae 0x40e904
mov ax, word [ebx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x40e904
add ebx, 2
mov dword [esp + 0x18], ebx
inc edi
cmp edi, dword [esp + 0x24]
jge 0x40ec91
mov eax, dword [esp + 0x174]
jmp 0x40e860
mov eax, dword [esp + 0x174]
mov ecx, dword [eax + 0x7c]
cmp ebx, ecx
jae 0x40e9e0
mov edx, dword [eax + 0x18]
add eax, 0x1c
test edx, edx
je 0x40e95d
push 1
push eax
push ecx
mov ecx, ebx
call fcn.00414670
mov ecx, dword [esp + 0x180]
add esp, 0xc
test eax, eax
jne 0x40ec98
jmp 0x40e997
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
mov ecx, dword [esp + 0x174]
ja 0x40e997
mov ax, word [ebx]
cmp ax, word [ecx + 0x2c]
jne 0x40e997
cmp edx, 1
je 0x40ec98
mov ax, word [ebx + 2]
cmp ax, word [ecx + 0x2e]
je 0x40ec98
mov ecx, dword [ecx + 0x7c]
add ebx, 2
mov dword [esp + 0x18], ebx
cmp ebx, ecx
jae 0x40e9c9
mov ax, word [ebx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x40e9c9
add ebx, 2
mov dword [esp + 0x18], ebx
inc edi
cmp edi, dword [esp + 0x24]
jge 0x40ec91
mov eax, dword [esp + 0x174]
jmp 0x40e925
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x40ec98
cmp ebx, dword [ecx + 0x88]
jbe 0x40ec98
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x411290
jmp 0x40ec98
cmp edx, 0x7fffffff
jge 0x40ea6b
cmp edi, edx
jge 0x40ec91
mov eax, dword [esp + 0x174]
mov ecx, dword [eax + 0x7c]
cmp ebx, ecx
jae 0x40e9e0
add ebx, 2
mov dword [esp + 0x18], ebx
cmp ebx, ecx
jae 0x40ea61
mov ax, word [ebx]
and ax, word [esp + 0x68]
cmp ax, word [esp + 0x48]
jne 0x40ea61
add ebx, 2
mov dword [esp + 0x18], ebx
inc edi
cmp edi, edx
jl 0x40ea34
jmp 0x40ec91
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
mov ebx, dword [ecx + 0x7c]
mov dword [esp + 0x18], ebx
test eax, eax
je 0x40ec98
cmp ebx, dword [ecx + 0x88]
jbe 0x40ec98
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x411290
jmp 0x40ec98
sub edx, edi
mov edi, dword [esp + 0x174]
mov ecx, dword [edi + 0x7c]
mov eax, ecx
sub eax, ebx
sar eax, 1
cmp edx, eax
jbe 0x40eae3
mov eax, dword [edi + 0x8c]
mov ebx, ecx
mov dword [esp + 0x18], ebx
test eax, eax
je 0x40eaea
cmp ecx, dword [edi + 0x88]
mov ecx, edi
jmp 0x40e9fb
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
mov ecx, edi
jmp 0x40ec98
cmp edi, edx
jge 0x40ec91
mov eax, dword [esp + 0x174]
mov edx, dword [eax + 0x7c]
cmp ebx, edx
jae 0x40e9e0
movzx ecx, word [ebx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40eb44
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, 4
add ecx, 0x10000
jmp 0x40eb49
mov eax, 2
cmp ecx, 0xd
jne 0x40eb73
add ebx, 2
mov dword [esp + 0x18], ebx
cmp ebx, edx
jae 0x40ec91
cmp word [ebx], 0xa
jne 0x40ebcd
add ebx, 2
jmp 0x40ebc9
cmp ecx, 0xa
je 0x40ebc7
mov ebp, dword [esp + 0x174]
cmp dword [ebp + 0x68], 0
mov ebp, dword [esp + 0x28]
jne 0x40ec91
cmp ecx, 0xb
je 0x40ebc7
cmp ecx, 0xc
je 0x40ebc7
cmp ecx, 0x85
je 0x40ebc7
cmp ecx, 0x2028
je 0x40ebc7
cmp ecx, 0x2029
jne 0x40ec91
add ebx, eax
mov dword [esp + 0x18], ebx
inc edi
cmp edi, dword [esp + 0x24]
jl 0x40eb03
jmp 0x40ec91
cmp edi, edx
jge 0x40ec91
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
nop
mov edx, 1
cmp ebx, esi
jae 0x40edc3
movzx ecx, word [ebx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40ec31
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 0x40ed8a
je case.0x40edb2.8193
cmp ecx, 0xa0
ja 0x40ed73
je case.0x40edb2.8193
cmp ecx, 9
je case.0x40edb2.8193
cmp ecx, 0x20
je case.0x40edb2.8193
xor ecx, ecx
xor eax, eax
cmp dword [esp + 0x1c], 0x12
sete al
cmp ecx, eax
je 0x40ec8d
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x40ebf0
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x174]
cmp dword [esp + 0x30], 0
jne 0x409f94
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.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
nop word [eax + eax]
lea ecx, [ebx - 2]
cmp ebx, ebp
je case.default.0x40b839
mov ax, word [ecx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x40ed07
add ecx, 0xfffffffe
mov ebx, ecx
cmp esi, 0x11
jne 0x40ed2f
cmp ecx, ebp
jbe 0x40ed2f
cmp word [ecx], 0xa
jne 0x40ed2f
cmp word [ecx - 2], 0xd
lea eax, [ecx - 2]
cmove ebx, eax
mov eax, dword [esp + 0x17c]
mov edx, edi
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.00409eb0
add esp, 0x14
test eax, eax
je 0x40ece0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
cmp ecx, 0x1680
je case.0x40edb2.8193
cmp ecx, 0x180e
jmp 0x40ec61
cmp ecx, 0x3000
ja case.0x40edb2.8203
je case.0x40edb2.8193
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x40edb2.8203
movzx eax, byte [ecx + 0x411d70]
jmp dword [eax*4 + 0x411d68]
mov ecx, 1
jmp 0x40ec69
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x40edf0
cmp ebx, dword [ecx + 0x88]
jbe 0x40edf0
mov dword [ecx + 0x64], edx
cmp eax, 1
jg 0x411290
mov esi, dword [esp + 0x1c]
jmp 0x40ec98
cmp edi, edx
jge 0x40ec91
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
nop dword [eax + eax]
cmp ebx, esi
jae 0x40eec0
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40ee51
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 0x40ee76
je case.0x40ee6f.10
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x40ee6f
jmp dword [ecx*4 + 0x411dd0]
sub ecx, 0x2028
je case.0x40ee6f.10
sub ecx, 1
je case.0x40ee6f.10
xor ecx, ecx
jmp 0x40ee97
mov ecx, 1
xor eax, eax
cmp dword [esp + 0x1c], 0x14
sete al
cmp ecx, eax
je 0x40ec8d
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x40ee10
jmp 0x40ec8d
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x40edf0
cmp ebx, dword [ecx + 0x88]
jbe 0x40edf0
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x411290
mov esi, dword [esp + 0x1c]
jmp 0x40ec98
cmp edi, edx
jge 0x40ec91
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
nop dword [eax]
cmp ebx, esi
jae 0x40eec0
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40ef4d
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 0x40ef6d
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 4
jne 0x40ec8d
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x40ef10
jmp 0x40ec8d
cmp edi, edx
jge 0x40ec91
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x40eec0
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40efd3
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 0x40ec8d
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 4
je 0x40ec8d
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x40ef92
jmp 0x40ec8d
cmp edi, edx
jge 0x40ec91
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x40eec0
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40f059
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 0x40f079
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 1
jne 0x40ec8d
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x40f018
jmp 0x40ec8d
cmp edi, edx
jge 0x40ec91
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
nop
cmp ebx, esi
jae 0x40eec0
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40f0e1
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 0x40ec8d
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 1
je 0x40ec8d
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x40f0a0
jmp 0x40ec8d
cmp edi, edx
jge 0x40ec91
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x40eec0
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40f167
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 0x40f187
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 0x10
jne 0x40ec8d
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x40f126
jmp 0x40ec8d
cmp edi, edx
jge 0x40ec91
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
nop dword [eax]
cmp ebx, esi
jae 0x40f224
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40f1f1
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 0x40ec8d
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 0x10
je 0x40ec8d
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x40f1b0
jmp 0x40ec8d
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x40edf0
cmp ebx, dword [ecx + 0x88]
jbe 0x40edf0
mov dword [ecx + 0x64], 1
cmp eax, 1
jle 0x40edf0
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
cmp ecx, 0x74
mov ecx, ebx
jne 0x40f2b0
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.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
mov esi, ebp
mov ebp, dword [esp + 0x174]
jmp 0x40f4eb
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.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
mov ebp, dword [esp + 0x174]
add esi, 4
jmp 0x40f4eb
mov eax, dword [ebp + 0x90]
mov edx, dword [esp + 0x170]
cmp eax, edx
cmovg edx, eax
movzx eax, word [esi + 6]
add eax, 2
mov dword [esp + 0x170], edx
lea eax, [esi + eax*2]
mov ecx, eax
cmp word [ecx], 0x71
jne 0x40f352
nop dword [eax]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
mov ecx, eax
cmp word [ecx], 0x71
je 0x40f330
jmp 0x40f352
mov ebp, dword [esp + 0x174]
mov edx, dword [esp + 0x170]
cmp dword [esp + 0x20], 0x86
lea esi, [eax + 4]
mov dword [esp + 0x14], esi
jne 0x40f4ef
mov dword [ebp + 0x9c], 2
mov ecx, ebx
mov eax, dword [esp + 0x17c]
inc eax
push eax
push dword [esp + 0x17c]
push ebp
push edx
push dword [esp + 0x17c]
mov edx, esi
call fcn.00409eb0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
cmp ecx, 0x75
je 0x40f719
cmp ecx, 0x74
jne 0x40f40a
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
push eax
push dword [esp + 0x17c]
push edi
push edx
push dword [esp + 0x17c]
lea edx, [esi + 4]
call fcn.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
movzx eax, word [ebp]
cmp eax, 0x7b
je 0x40f6d7
mov ecx, 0x82
cmp ax, cx
jae 0x40f697
mov esi, ebp
mov ebp, dword [esp + 0x174]
jmp 0x40f4eb
mov eax, 0x82
cmp word [ebp], ax
jb 0x40f423
mov dword [edi + 0x9c], 2
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
push eax
push dword [esp + 0x17c]
push edi
push edx
push dword [esp + 0x17c]
mov edx, ebp
call fcn.00409eb0
add esp, 0x14
cmp eax, 0xfffffc1c
jne 0x40f45e
cmp dword [edi + 0xb8], ebp
jmp 0x40f460
test eax, eax
jne 0x40f504
add esi, 4
cmp word [ebp], 0x7b
mov dword [esp + 0x14], esi
je 0x40f715
mov ebp, dword [esp + 0x174]
jmp 0x40f4ef
movzx edx, word [esi + 4]
mov esi, dword [esp + 0x174]
mov dword [esp + 0x2c], edx
lea ebp, [edx + edx]
cmp ebp, dword [esi + 0x14]
jl 0x4112a0
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x174]
nop
cmp edx, 0x82
jae 0x40f50f
cmp edx, 0x7b
je 0x40f50f
cmp dword [ebp + 0x6c], 0
jne 0x40f519
movzx eax, word [esi + 2]
cmp word [esi + eax*2], 0x71
je 0x40f519
movzx eax, word [esi]
movzx eax, byte [eax + 0x50a010]
lea esi, [esi + eax*2]
mov dword [esp + 0x14], esi
mov eax, dword [ebp]
cmp eax, dword [ebp + 4]
jb 0x409f51
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 + 0x50a010]
push dword [esp + 0x17c]
lea edx, [edi + eax*2]
call fcn.00409eb0
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc20
jne 0x40f593
movzx ecx, word [edi + 2]
lea eax, [edi + ecx*2]
cmp dword [ebp + 0x80], eax
jae 0x411462
cmp word [edi], 0x71
je 0x40f59b
cmp word [eax], 0x71
jne 0x411462
jmp 0x40f59b
test edx, edx
jne 0x411417
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.0x40b839
mov edx, dword [esp + 0x20]
jmp 0x40f4b0
mov eax, dword [esp + 0x17c]
inc eax
push eax
push dword [esp + 0x17c]
movzx eax, word [esi + 2]
add ecx, eax
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
lea edx, [esi + ecx*2]
mov ecx, ebx
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x40f611
cmp eax, 0xfffffc1d
je 0x40f611
cmp eax, 0xfffffc20
jne 0x40f504
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 eax, 0xffffffe6
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x5c]
lea ecx, [esp + 0xf0]
cmp eax, ecx
je 0x40f657
push eax
call dword [0x526b54]
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 [edi + 0x84], ebx
mov dword [edi + 0x80], eax
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov dword [edi + 0x9c], 2
mov edx, ebp
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
push eax
push dword [esp + 0x17c]
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov edx, ebp
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
push eax
push dword [esp + 0x17c]
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x40f762
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov edx, esi
jmp 0x40f6d9
mov dword [edi + 0x84], ebx
mov eax, 0xfffffc1b
mov dword [edi + 0x90], edx
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 edi
push edx
push dword [esp + 0x17c]
mov edx, esi
call fcn.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
mov dword [edi + 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 + 0x170]
mov dword [eax + 0x84], ebx
mov dword [eax + 0x90], ecx
mov ecx, dword [esp + 0x16c]
mov dword [eax + 0x80], ecx
mov eax, 1
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.0x40b839
cmp ebx, dword [ecx + 0x7c]
jb case.default.0x40b839
cmp ebx, dword [ecx + 0x88]
jbe case.default.0x40b839
mov dword [ecx + 0x64], 1
jmp 0x411282
mov edi, ebx
cmp esi, eax
jge 0x40f870
nop
push edx
push dword [esp + 0x178]
mov edx, ebx
push ebp
call fcn.00409d00
add esp, 0xc
test eax, eax
js 0x40f822
mov ecx, dword [esp + 0x2c]
lea ebx, [ebx + eax*2]
mov edx, dword [esp + 0x3c]
inc esi
cmp esi, dword [esp + 0x34]
jl 0x40f7f0
jmp 0x40f85c
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x40f85c
cmp ebx, dword [ecx + 0x7c]
jb 0x40f85c
cmp ebx, dword [ecx + 0x88]
jbe 0x40f85c
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x411290
cmp ebx, edi
jb case.default.0x40b839
nop dword [eax]
nop dword [eax + eax]
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.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
mov eax, ebp
neg eax
lea ebx, [ebx + eax*2]
cmp ebx, edi
jae 0x40f870
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.0x40b839
cmp ebx, dword [esi + 0x7c]
jb case.default.0x40b839
cmp ebx, dword [esi + 0x88]
jbe case.default.0x40b839
mov dword [esi + 0x64], 1
jmp 0x411282
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
test byte [edx + ebp], al
je case.default.0x40b839
mov ecx, dword [esp + 0x174]
mov eax, dword [esp + 0x17c]
inc esi
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.00409eb0
add esp, 0x14
test eax, eax
je 0x40c196
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ebp, ebx
cmp esi, edi
jge 0x40f9c8
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x30]
mov edi, dword [eax + 0x7c]
nop word [eax + eax]
cmp ebx, edi
jae 0x40fa9e
movzx edx, word [ebx]
mov esi, 1
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40f9b1
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 0x40fa65
cmp dword [esp + 0x20], 0x6a
jne 0x40fa85
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.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, ebp
je case.default.0x40b839
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x40fa2b
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.00409eb0
add esp, 0x14
test eax, eax
je 0x40fa06
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 + 0x34]
test byte [edx + ecx], al
je 0x40f9c8
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
lea ebx, [ebx + esi*2]
inc eax
mov dword [esp + 0x2c], eax
cmp eax, ecx
jl 0x40f970
jmp 0x40f9c8
mov esi, dword [esp + 0x174]
mov eax, dword [esi + 0x8c]
test eax, eax
je 0x40f9cf
cmp ebx, dword [esi + 0x88]
jbe 0x40f9cf
mov dword [esi + 0x64], 1
cmp eax, 1
jg 0x411290
jmp 0x40f9cf
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je case.default.0x40b839
jmp 0x40f7cd
mov ebp, ebx
cmp edi, esi
jge 0x40fb69
nop dword [eax + eax]
mov esi, dword [esp + 0x174]
cmp ebx, dword [esi + 0x7c]
jae 0x40fc06
movzx ecx, word [ebx]
mov esi, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x40fb49
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 + 0x44]
push 1
call fcn.00414820
add esp, 4
test eax, eax
je 0x40fb69
inc edi
lea ebx, [ebx + esi*2]
cmp edi, dword [esp + 0x34]
jl 0x40fb00
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.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, ebp
je case.default.0x40b839
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x40fbcc
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.00409eb0
add esp, 0x14
test eax, eax
je 0x40fba7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esi + 0x8c]
test eax, eax
je 0x40fb70
cmp ebx, dword [esi + 0x88]
jbe 0x40fb70
mov dword [esi + 0x64], 1
cmp eax, 1
jg 0x411290
jmp 0x40fb70
mov eax, dword [ebp + 0x8c]
test eax, eax
je case.default.0x40b839
cmp ebx, ecx
jb case.default.0x40b839
jmp 0x41126f
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.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
nop dword [eax]
cmp esi, edi
jge case.default.0x40b839
mov ecx, dword [esp + 0x3c]
mov ebp, dword [ebp + 0x7c]
mov eax, ebp
lea edi, [ecx + ecx]
sub eax, edi
cmp ebx, eax
ja 0x40fd27
mov edx, dword [esp + 0x1c]
lea esi, [ecx + ecx]
mov ecx, ebx
sub esi, 4
jb 0x40fcd5
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x40fcde
add ecx, 4
add edx, 4
sub esi, 4
jae 0x40fcc0
cmp esi, 0xfffffffc
je 0x40fdbb
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x40fd27
cmp esi, 0xfffffffd
je 0x40fdbb
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x40fd27
cmp esi, 0xfffffffe
je 0x40fdbb
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x40fd27
cmp esi, 0xffffffff
je 0x40fdbb
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x40fdbb
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jle 0x40fe11
lea edi, [ecx + ecx]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x40fe11
lea esi, [ecx + ecx]
mov ecx, ebx
lea edx, [esp + 0x74]
sub esi, 4
jb 0x40fd69
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x40fd72
add ecx, 4
add edx, 4
sub esi, 4
jae 0x40fd54
cmp esi, 0xfffffffc
je 0x40fdbb
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x40fe11
cmp esi, 0xfffffffd
je 0x40fdbb
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x40fe11
cmp esi, 0xfffffffe
je 0x40fdbb
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x40fe11
cmp esi, 0xffffffff
je 0x40fdbb
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x40fe11
mov eax, dword [esp + 0x17c]
add ebx, edi
mov ebp, dword [esp + 0x174]
inc eax
mov esi, dword [esp + 0x24]
mov ecx, ebx
mov edx, dword [esp + 0x14]
inc esi
push eax
push dword [esp + 0x17c]
mov dword [esp + 0x2c], esi
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
mov edi, dword [esp + 0x34]
add esp, 0x14
test eax, eax
je 0x40fc90
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.0x40b839
cmp ebx, ebp
jmp 0x40f7c7
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.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
nop dword [eax + eax]
cmp ebp, dword [esp + 0x20]
jge case.default.0x40b839
mov ecx, dword [esp + 0x174]
cmp ebx, dword [ecx + 0x7c]
jae 0x40fadb
movzx eax, word [ebx]
cmp esi, eax
je 0x40fe9d
cmp edi, eax
jne case.default.0x40b839
mov eax, dword [esp + 0x17c]
add ebx, 2
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
inc ebp
push ecx
push dword [esp + 0x17c]
mov ecx, ebx
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x40fe70
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [edi + 0x8c]
test eax, eax
je case.default.0x40b839
cmp ebx, dword [edi + 0x88]
jbe case.default.0x40b839
mov dword [edi + 0x64], 1
jmp 0x411282
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
nop dword [eax + eax]
cmp ebp, dword [esp + 0x20]
jge case.default.0x40b839
cmp ebx, dword [edi + 0x7c]
jae 0x40fedd
movzx eax, word [ebx]
add ebx, 2
cmp esi, eax
jne case.default.0x40b839
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
inc ebp
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x40ff40
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edx, esi
mov edi, dword [esp + 0x170]
inc eax
push eax
push dword [esp + 0x17c]
push ecx
push edi
push dword [esp + 0x17c]
mov ecx, ebx
call fcn.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
nop
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, ebp
je case.default.0x40b839
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x40fff9
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.00409eb0
add esp, 0x14
test eax, eax
je 0x40ffd0
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.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
nop
cmp edi, esi
jge case.default.0x40b839
mov edx, dword [esp + 0x174]
cmp ebx, dword [edx + 0x7c]
jae 0x41010f
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4100bc
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
cmp dword [esp + 0x2c], ecx
je case.default.0x40b839
cmp ebp, ecx
je case.default.0x40b839
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
inc edi
push eax
push dword [esp + 0x17c]
push edx
push dword [esp + 0x17c]
mov edx, dword [esp + 0x24]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x410070
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [edx + 0x8c]
test eax, eax
je case.default.0x40b839
cmp ebx, dword [edx + 0x88]
jbe case.default.0x40b839
mov dword [edx + 0x64], 1
jmp 0x411282
mov eax, dword [esp + 0x17c]
mov edx, esi
mov edi, dword [esp + 0x170]
inc eax
push eax
push dword [esp + 0x17c]
push ecx
push edi
push dword [esp + 0x17c]
mov ecx, ebx
call fcn.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
nop dword [eax]
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, ebp
je case.default.0x40b839
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x410199
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.00409eb0
add esp, 0x14
test eax, eax
je 0x410170
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.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
nop dword [eax]
cmp edi, esi
jge case.default.0x40b839
mov edx, dword [esp + 0x174]
cmp ebx, dword [edx + 0x7c]
jae 0x41010f
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41025c
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
cmp ebp, ecx
je case.default.0x40b839
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
inc edi
push eax
push dword [esp + 0x17c]
push edx
push dword [esp + 0x17c]
mov edx, dword [esp + 0x24]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x410210
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esi + 0x8c]
test eax, eax
je case.default.0x40b839
jmp 0x40f8da
mov eax, dword [esp + 0x17c]
mov edx, esi
mov edi, dword [esp + 0x170]
inc eax
push eax
push dword [esp + 0x17c]
push ecx
push edi
push dword [esp + 0x17c]
mov ecx, ebx
call fcn.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
nop dword [eax]
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, ebp
je case.default.0x40b839
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x410315
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.00409eb0
add esp, 0x14
test eax, eax
je 0x4102f0
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.00409eb0
mov ebp, dword [esp + 0x3c]
add esp, 0x14
test eax, eax
je 0x40e785
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
test eax, eax
js 0x410cfd
cmp eax, 8
ja case.default.0x40bba1
jmp dword [eax*4 + 0x411de0]
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov esi, dword [esp + 0x174]
inc eax
mov ebp, dword [esp + 0x14]
mov edx, ebp
push eax
push dword [esp + 0x17c]
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
nop
mov ecx, ebx
cmp edi, dword [esp + 0x24]
jge case.default.0x40b839
cmp ebx, dword [esi + 0x7c]
jae 0x4102a5
movzx eax, word [ebx]
add ebx, 2
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41041a
lea ebx, [ecx + 4]
cmp dword [esp + 0x38], 0
jne case.default.0x40b839
mov eax, dword [esp + 0x17c]
mov edx, ebp
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
inc edi
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x4103f0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov esi, dword [esp + 0x174]
inc eax
mov ebp, dword [esp + 0x14]
mov edx, ebp
push eax
push dword [esp + 0x17c]
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
nop
cmp edi, dword [esp + 0x24]
jge case.default.0x40b839
cmp ebx, dword [esi + 0x7c]
jae 0x4102a5
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4104e7
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 + 0x5172a0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x50a8c0]
mov al, byte [eax*8 + 0x5161c1]
cmp al, 9
je 0x41051e
cmp al, 5
je 0x41051e
cmp al, 8
je 0x41051e
xor eax, eax
jmp 0x410523
mov eax, 1
cmp eax, dword [esp + 0x38]
je case.default.0x40b839
mov eax, dword [esp + 0x17c]
mov edx, ebp
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
inc edi
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x4104a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov esi, dword [esp + 0x174]
inc eax
mov ebp, dword [esp + 0x14]
mov edx, ebp
push eax
push dword [esp + 0x17c]
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
nop word [eax + eax]
cmp edi, dword [esp + 0x24]
jge case.default.0x40b839
cmp ebx, dword [esi + 0x7c]
jae 0x4102a5
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4105f7
movzx eax, word [ebx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ebx, 2
add ecx, 0x10000
mov edx, dword [esp + 0x40]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x5172a0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
cmp dword [eax*4 + 0x509f90], edx
sete cl
cmp ecx, dword [esp + 0x38]
je case.default.0x40b839
mov eax, dword [esp + 0x17c]
mov edx, ebp
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
inc edi
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x4105b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov esi, dword [esp + 0x174]
inc eax
mov ebp, dword [esp + 0x14]
mov edx, ebp
push eax
push dword [esp + 0x17c]
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
cmp edi, dword [esp + 0x24]
jge case.default.0x40b839
cmp ebx, dword [esi + 0x7c]
jae 0x4102a5
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4106f9
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 + 0x5172a0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
cmp eax, dword [esp + 0x40]
sete cl
cmp ecx, dword [esp + 0x38]
je case.default.0x40b839
mov eax, dword [esp + 0x17c]
mov edx, ebp
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
inc edi
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x4106b2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov esi, dword [esp + 0x174]
inc eax
mov ebp, dword [esp + 0x14]
mov edx, ebp
push eax
push dword [esp + 0x17c]
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
nop dword [eax]
cmp edi, dword [esp + 0x24]
jge case.default.0x40b839
cmp ebx, dword [esi + 0x7c]
jae 0x4102a5
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4107f7
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 + 0x5172a0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c0]
cmp eax, dword [esp + 0x40]
sete cl
cmp ecx, dword [esp + 0x38]
je case.default.0x40b839
mov eax, dword [esp + 0x17c]
mov edx, ebp
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
inc edi
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x4107b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov esi, dword [esp + 0x174]
inc eax
mov ebp, dword [esp + 0x14]
mov edx, ebp
push eax
push dword [esp + 0x17c]
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
nop dword [eax + eax]
cmp edi, dword [esp + 0x24]
jge case.default.0x40b839
cmp ebx, dword [esi + 0x7c]
jae 0x4102a5
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4108f7
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 + 0x5172a0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
mov eax, dword [eax*4 + 0x509f90]
cmp eax, 1
je 0x410930
cmp eax, 3
je 0x410930
xor eax, eax
jmp 0x410935
mov eax, 1
cmp eax, dword [esp + 0x38]
je case.default.0x40b839
mov eax, dword [esp + 0x17c]
mov edx, ebp
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
inc edi
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x4108b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov esi, dword [esp + 0x174]
inc eax
mov ebp, dword [esp + 0x14]
mov edx, ebp
push eax
push dword [esp + 0x17c]
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
nop dword [eax]
cmp edi, dword [esp + 0x24]
jge case.default.0x40b839
cmp ebx, dword [esi + 0x7c]
jae 0x4102a5
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x410a07
movzx eax, word [ebx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add ebx, 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x5172a0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
cmp dword [eax*4 + 0x509f90], 6
je 0x410a5b
cmp edx, 9
je 0x410a5b
cmp edx, 0xa
je 0x410a5b
cmp edx, 0xc
je 0x410a5b
cmp edx, 0xd
je 0x410a5b
xor eax, eax
jmp 0x410a60
mov eax, 1
cmp eax, dword [esp + 0x38]
je case.default.0x40b839
mov eax, dword [esp + 0x17c]
mov edx, ebp
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
inc edi
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x4109c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov esi, dword [esp + 0x174]
inc eax
mov ebp, dword [esp + 0x14]
mov edx, ebp
push eax
push dword [esp + 0x17c]
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
nop word [eax + eax]
cmp edi, dword [esp + 0x24]
jge case.default.0x40b839
cmp ebx, dword [esi + 0x7c]
jae 0x4102a5
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x410b37
movzx eax, word [ebx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add ebx, 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x5172a0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
cmp dword [eax*4 + 0x509f90], 6
je 0x410b94
cmp edx, 9
je 0x410b94
cmp edx, 0xa
je 0x410b94
cmp edx, 0xb
je 0x410b94
cmp edx, 0xc
je 0x410b94
cmp edx, 0xd
je 0x410b94
xor eax, eax
jmp 0x410b99
mov eax, 1
cmp eax, dword [esp + 0x38]
je case.default.0x40b839
mov eax, dword [esp + 0x17c]
mov edx, ebp
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
inc edi
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x410af0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov esi, dword [esp + 0x174]
inc eax
mov ebp, dword [esp + 0x14]
mov edx, ebp
push eax
push dword [esp + 0x17c]
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
jne 0x40f504
cmp edi, dword [esp + 0x24]
jge case.default.0x40b839
cmp ebx, dword [esi + 0x7c]
jae 0x4102a5
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x410c67
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 + 0x5172a0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
mov eax, dword [eax*4 + 0x509f90]
cmp eax, 1
je 0x410caf
cmp eax, 3
je 0x410caf
cmp edx, 0x5f
je 0x410caf
xor eax, eax
jmp 0x410cb4
mov eax, 1
cmp eax, dword [esp + 0x38]
je case.default.0x40b839
mov eax, dword [esp + 0x17c]
mov edx, ebp
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
inc edi
push esi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x410c20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
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.00409eb0
add esp, 0x14
cmp esi, 0x16
jne 0x410e89
test eax, eax
jne 0x40f504
cmp edi, dword [esp + 0x24]
jge case.default.0x40b839
mov edi, dword [ebp + 0x7c]
cmp ebx, edi
jae 0x411261
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x410d8b
movzx eax, word [ebx]
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 + 0x5172a0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
cmp dword [eax*4 + 0x509f90], 2
je case.default.0x40b839
cmp ebx, edi
jae 0x410e40
mov esi, ebx
nop word [eax + eax]
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x410e09
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 + 0x5172a0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x50a8c0]
movzx eax, byte [eax*8 + 0x5161c1]
cmp dword [eax*4 + 0x509f90], 2
jne 0x410e40
lea ebx, [esi + edx*2]
mov esi, ebx
cmp ebx, edi
jb 0x410dd0
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edi, dword [esp + 0x20]
inc eax
mov edx, dword [esp + 0x14]
inc edi
push eax
push dword [esp + 0x17c]
mov dword [esp + 0x28], edi
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x410d42
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
test eax, eax
jne 0x40f504
cmp edi, dword [esp + 0x24]
jge case.default.0x40b839
mov ecx, dword [ebp + 0x7c]
cmp ebx, ecx
jae 0x411261
cmp esi, 0xc
jne 0x410f0b
mov edx, dword [ebp + 0x18]
lea eax, [ebp + 0x1c]
test edx, edx
je 0x410ed8
push 1
push eax
push ecx
mov ecx, ebx
call fcn.00414670
add esp, 0xc
test eax, eax
jne case.default.0x40b839
jmp 0x410f0b
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja 0x410f0b
mov ax, word [ebx]
cmp ax, word [ebp + 0x2c]
jne 0x410f0b
cmp edx, 1
je case.default.0x40b839
mov ax, word [ebx + 2]
cmp ax, word [ebp + 0x2e]
je case.default.0x40b839
movzx ecx, word [ebx]
lea edx, [ebx + 2]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x410f3f
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edx, 2
lea eax, [esi - 6]
cmp eax, 0xf
ja case.default.0x40bba1
jmp dword [eax*4 + 0x411e04]
mov ebx, edx
jmp 0x411210
cmp ecx, 0x85
ja 0x410f9b
je case.0x410f77.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x40b839
jmp dword [ecx*4 + 0x411e44]
mov ebx, edx
cmp edx, dword [ebp + 0x7c]
jae 0x411210
cmp word [edx], 0xa
jne 0x411210
lea ebx, [edx + 2]
jmp 0x411210
sub ecx, 0x2028
je case.0x410f77.11
sub ecx, 1
jne case.default.0x40b839
cmp dword [ebp + 0x68], 0
mov ebx, edx
jne case.default.0x40b839
jmp 0x411210
cmp ecx, 0x2000
ja 0x411019
je case.default.0x40b839
cmp ecx, 0xa0
ja 0x410ffa
je case.default.0x40b839
cmp ecx, 9
je case.default.0x40b839
cmp ecx, 0x20
je case.default.0x40b839
mov ebx, edx
jmp 0x411210
cmp ecx, 0x1680
je case.default.0x40b839
cmp ecx, 0x180e
je case.default.0x40b839
mov ebx, edx
jmp 0x411210
cmp ecx, 0x3000
ja case.0x410f4b.12
je case.default.0x40b839
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x410f4b.12
movzx eax, byte [ecx + 0x411e5c]
jmp dword [eax*4 + 0x411e54]
cmp ecx, 0x2000
ja 0x4110a4
je case.0x410f4b.12
cmp ecx, 0xa0
ja 0x411085
je case.0x410f4b.12
cmp ecx, 9
je case.0x410f4b.12
cmp ecx, 0x20
jne case.default.0x40b839
mov ebx, edx
jmp 0x411210
cmp ecx, 0x1680
je case.0x410f4b.12
cmp ecx, 0x180e
jne case.default.0x40b839
mov ebx, edx
jmp 0x411210
cmp ecx, 0x3000
ja case.default.0x40b839
je case.0x410f4b.12
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x40b839
movzx eax, byte [ecx + 0x411ec4]
jmp dword [eax*4 + 0x411ebc]
cmp ecx, 0x85
ja 0x4110f8
je case.default.0x40b839
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x410f4b.12
jmp dword [ecx*4 + 0x411f24]
sub ecx, 0x2028
je case.default.0x40b839
sub ecx, 1
je case.default.0x40b839
mov ebx, edx
jmp 0x411210
cmp ecx, 0x85
ja 0x411139
je case.0x410f4b.12
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x40b839
jmp dword [ecx*4 + 0x411f34]
sub ecx, 0x2028
je case.0x410f4b.12
sub ecx, 1
jne case.default.0x40b839
mov ebx, edx
jmp 0x411210
cmp ecx, 0x100
jae case.0x410f4b.12
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 4
jne case.default.0x40b839
mov ebx, edx
jmp 0x411210
cmp ecx, 0x100
jae case.default.0x40b839
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 4
je case.default.0x40b839
mov ebx, edx
jmp 0x411210
cmp ecx, 0x100
jae case.0x410f4b.12
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 1
jne case.default.0x40b839
mov ebx, edx
jmp 0x411210
cmp ecx, 0x100
jae case.default.0x40b839
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 1
je case.default.0x40b839
mov ebx, edx
jmp 0x411210
cmp ecx, 0x100
jae case.0x410f4b.12
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
jne case.default.0x40b839
mov ebx, edx
jmp 0x411210
cmp ecx, 0x100
jae case.default.0x40b839
mov eax, dword [ebp + 0x3c]
mov ebx, edx
test byte [ecx + eax], 0x10
je case.default.0x40b839
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
inc edi
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x410e91
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 [ebp + 0x8c]
test eax, eax
je case.default.0x40b839
cmp ebx, dword [ebp + 0x88]
jbe case.default.0x40b839
mov dword [ebp + 0x64], 1
cmp eax, 1
jle case.default.0x40b839
nop dword [eax + eax]
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + ebp*4]
mov dword [esp + 0x50], eax
mov eax, dword [ecx + ebp*4 + 4]
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0x10]
sub eax, edx
mov edx, esi
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
mov dword [esp + 0x4c], eax
mov eax, ebx
sub eax, dword [edx + 0x78]
mov esi, dword [edx + 0x94]
mov edi, dword [edx + 0xb0]
sar eax, 1
mov dword [ecx], eax
nop word [eax + eax]
cmp dword [esp + 0x20], 0x82
jb 0x4112f8
mov dword [edx + 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 edx
movzx eax, byte [eax + 0x50a010]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
lea edx, [ecx + eax*2]
mov ecx, ebx
call fcn.00409eb0
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc1c
je 0x4113d6
cmp edx, 0xfffffc20
jne 0x41138c
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 0x41140a
mov ecx, dword [esp + 0x14]
cmp word [ecx], 0x71
mov ecx, dword [esp + 0x174]
je 0x411385
cmp word [eax], 0x71
jne 0x41140a
xor edx, edx
jmp 0x41139b
test edx, edx
jne 0x41140a
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 0x4113dd
mov edx, ecx
jmp 0x4112e0
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0xc]
mov ebx, dword [esp + 0x174]
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x4c]
mov dword [eax + ebp*4], ecx
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x44]
mov dword [eax + ebp*4 + 4], ecx
mov ecx, dword [ebx + 0x10]
sub ecx, dword [esp + 0x2c]
mov eax, dword [ebx + 0xc]
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 0x411462
movzx eax, word [edi]
cmp eax, 0x7b
je 0x411457
cmp eax, 0x71
jne 0x41144e
nop dword [eax + eax]
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x411440
movzx eax, word [edi + 2]
neg eax
lea edi, [edi + eax*2]
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 + 0x50a010]
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.00409eb0
mov esi, eax
add esp, 0x14
cmp esi, 1
je 0x4114dd
cmp esi, 0xfffffc19
je 0x4114dd
cmp esi, 0xfffffc1b
jne 0x4114fd
cmp dword [ebp + 0xb0], 0
jne 0x4114fd
mov dword [ebp + 0xb0], edi
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
cmp esi, 0xfffffc1f
jne 0x40f657
mov edx, dword [ebp + 0x80]
mov ecx, edi
call fcn.004145a0
test eax, eax
jne 0x40f657
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 + 0x50a010]
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
lea edx, [esi + eax*2]
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x411595
cmp eax, 0xfffffc1d
je 0x411595
cmp eax, 0xfffffc1e
je 0x411595
cmp eax, 0xfffffc1f
je 0x411595
cmp eax, 0xfffffc20
jne 0x40f504
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 + 0x50a010]
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
lea edx, [esi + eax*2]
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x411677
cmp eax, 0xfffffc20
je 0x411677
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 + 0x50a010]
movzx eax, word [edx + 2]
push dword [esp + 0x17c]
add ecx, eax
push dword [esp + 0x17c]
lea edx, [edx + ecx*2]
mov ecx, ebx
call fcn.00409eb0
add esp, 0x14
cmp eax, 1
je 0x411659
cmp eax, 0xfffffc19
jne 0x411668
cmp dword [ebp + 0xb0], 0
jne 0x411668
mov dword [ebp + 0xb0], esi
test eax, eax
je 0x411677
cmp eax, 0xfffffc20
jne 0x40f504
mov eax, 0xfffffc1d
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 + 0x50a010]
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
lea edx, [esi + eax*2]
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x4116d4
cmp eax, 0xfffffc1d
je 0x4116d4
cmp eax, 0xfffffc20
jne 0x40f504
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 + 0x50a010]
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
lea edx, [esi + eax*2]
call fcn.00409eb0
add esp, 0x14
test eax, eax
je 0x4117ae
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 + 0x50a010]
movzx eax, word [edx + 2]
push dword [esp + 0x17c]
add ecx, eax
push dword [esp + 0x17c]
lea edx, [edx + ecx*2]
mov ecx, ebx
call fcn.00409eb0
add esp, 0x14
cmp eax, 1
je 0x411793
cmp eax, 0xfffffc19
jne 0x4117a2
cmp dword [ebp + 0xb0], 0
jne 0x4117a2
mov dword [ebp + 0xb0], esi
test eax, eax
jne 0x40f504
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 0x411814
cmp edx, 0x99
je 0x411814
cmp dword [ebp + 0xa8], 0
jne 0x411814
cmp dword [ebp + 0x5c], 0
jne case.default.0x40b839
cmp dword [ebp + 0x60], 0
je 0x411814
mov ecx, dword [ebp + 0x98]
mov eax, dword [ebp + 0x78]
lea eax, [eax + ecx*2]
cmp esi, eax
je case.default.0x40b839
mov eax, dword [esp + 0x170]
test di, di
mov dword [ebp + 0x84], ebx
mov ecx, 1
mov dword [ebp + 0x90], eax
mov eax, 0xfffffc19
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