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

Disassembly:
sub esp, 0x158
push ebx
push ebp
push esi
mov esi, edx
mov ebx, ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ebx
push edi
test esi, esi
jne 0x4c2d5e
cmp dword [esp + 0x17c], edx
jne 0x4c2d43
push 1
push edx
push edx
push edx
push edx
lea ecx, [esp + 0x190]
call fcn.004c2d00
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
lea eax, [esp + 0x17c]
sub eax, ebx
cdq
xor eax, edx
sub eax, edx
neg eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ebp, dword [esp + 0x174]
mov dword [esp + 0x40], 0
mov dword [esp + 0x34], 0
mov eax, dword [ebp]
cmp eax, dword [ebp + 4]
jae 0x4c80db
mov dword [esp + 0x48], 0xfc00
mov dword [esp + 0x4c], 0xdc00
mov dword [esp + 0x50], closesocket
mov dword [esp + 0x54], 0xd800
inc eax
mov dword [ebp], eax
mov eax, dword [esp + 0x17c]
cmp eax, dword [ebp + 8]
jae 0x4ca2f9
cmp dword [ebp + 0x9c], 2
jne 0x4c2de2
mov eax, dword [esp + 0x178]
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x6c]
mov dword [esp + 0x70], ebx
mov dword [esp + 0x178], eax
mov dword [ebp + 0x9c], 0
mov edi, dword [esp + 0x170]
jmp 0x4c2e02
mov edi, dword [esp + 0x170]
mov ebp, dword [esp + 0x174]
mov esi, dword [esp + 0x14]
movzx ecx, word [esi]
mov edx, ecx
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x20], edx
cmp edx, 0x9b
ja case.0x4c2e2e.98
movzx eax, byte [edx + 0x4ca454]
jmp dword [eax*4 + 0x4ca30c]
cmp dword [ebp + 0x70], 0
movzx ecx, byte [edx + 0x4e3380]
je 0x4c8190
movzx eax, word [esi + 2]
add ecx, eax
lea esi, [esi + ecx*2]
mov dword [esp + 0x14], esi
jmp 0x4c2e02
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.004c2d00
mov edx, dword [esp + 0x188]
add esp, 0x14
cmp eax, 1
je 0x4c2f6f
cmp eax, 0xfffffc20
jne 0x4c2eda
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov eax, 0xfffffc20
cmp dword [edx + 0x80], ecx
jae 0x4c2eda
mov eax, dword [esp + 0x14]
cmp word [eax], 0x71
je 0x4c2ee2
cmp word [ecx], 0x71
mov eax, 0xfffffc20
je 0x4c2ee2
test eax, eax
jne 0x4c80e4
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 0x4c2e66
mov esi, dword [esp + 0x14]
movzx eax, cx
cmp eax, 0x7c
je 0x4c2f20
cmp eax, 0x71
jne case.default.0x4c471c
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 0x4c2f20
mov eax, dword [edx + 0x90]
mov ebx, dword [edx + 0x84]
mov dword [esp + 0x170], eax
mov dword [esp + 0x18], ebx
cmp ecx, 0x72
je 0x4c2f55
cmp ebx, edi
jne 0x4c7e7d
add esi, 4
mov dword [esp + 0x14], esi
mov ebp, dword [esp + 0x174]
mov edi, dword [esp + 0x170]
jmp 0x4c2e02
mov esi, dword [esp + 0x14]
mov eax, dword [edx + 0x80]
mov dword [esp + 0x16c], eax
movzx ecx, word [esi]
jmp 0x4c2f09
mov dword [esp + 0x30], 0
jmp 0x4c3a98
cmp word [esi + 4], 0x70
movzx edi, word [esi + 2]
jne 0x4c3080
mov esi, dword [0x4fd2f8]
test esi, esi
je 0x4c3075
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.0x4c471c
js 0x4c80e4
mov esi, dword [esp + 0x14]
add esi, 0xc
mov dword [esp + 0x14], esi
movzx ecx, word [esi + 4]
lea edx, [esi + 4]
cmp ecx, 0x89
je 0x4c3295
cmp ecx, 0x8a
je 0x4c3295
cmp ecx, 0x87
je 0x4c3111
cmp ecx, 0x88
je 0x4c3111
cmp ecx, 0x8b
jne 0x4c30c3
movzx eax, word [esi + 2]
lea eax, [esi + eax*2]
jmp 0x4c3421
mov dword [ebp + 0x9c], 1
mov ecx, ebx
mov eax, dword [esp + 0x17c]
inc eax
push eax
push 0
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
cmp eax, 1
je 0x4c7f0e
test eax, eax
je 0x4c3109
cmp eax, 0xfffffc20
jne 0x4c80e4
lea eax, [esi + edi*2]
jmp 0x4c3421
movzx esi, word [esi + 6]
lea edx, [esi + esi]
cmp edx, dword [esp + 0x170]
jge 0x4c312e
mov eax, dword [ebp + 0xc]
cmp dword [eax + edx*4], 0
jge 0x4c327f
xor ebp, ebp
cmp ecx, 0x88
jne 0x4c325e
mov ecx, dword [esp + 0x174]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x28], ebp
mov eax, dword [ecx + 0x28]
mov edi, eax
mov edx, dword [ecx + 0x20]
xor ecx, ecx
mov dword [esp + 0x3c], eax
test edx, edx
jle 0x4c319c
mov dword [esp + 0x28], ebp
xor ebx, ebx
mov ebp, eax
movzx eax, word [edi]
cmp eax, esi
je 0x4c3190
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x24]
lea edi, [eax*2]
lea eax, [ebx + 1]
add edi, ebp
mov dword [esp + 0x2c], eax
mov ecx, eax
mov ebp, edi
mov ebx, eax
cmp eax, edx
jl 0x4c3165
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x3c]
cmp ecx, edx
jge 0x4c325e
mov ecx, dword [esp + 0x174]
mov esi, edi
cmp edi, eax
jbe 0x4c3203
mov eax, dword [ecx + 0x24]
lea ecx, [edi + 2]
neg eax
lea esi, [esi + eax*2]
lea edx, [esi + 2]
call fcn.004cbef0
test eax, eax
jne 0x4c3272
movzx eax, word [esi]
lea ecx, [eax + eax]
cmp ecx, dword [esp + 0x170]
jge 0x4c31ef
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x4c327f
mov ecx, dword [esp + 0x174]
xor edx, edx
mov dword [esp + 0x28], edx
cmp esi, dword [ecx + 0x28]
ja 0x4c31b1
xor ebp, ebp
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x2c], eax
cmp eax, dword [ecx + 0x20]
jge 0x4c325e
lea esi, [edi + 2]
mov eax, dword [ecx + 0x24]
mov ecx, esi
lea edi, [edi + eax*2]
lea edx, [edi + 2]
call fcn.004cbef0
test eax, eax
jne 0x4c325e
movzx eax, word [edi]
lea ecx, [eax + eax]
cmp ecx, dword [esp + 0x170]
jge 0x4c3247
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x4c327f
mov eax, dword [esp + 0x2c]
xor ebp, ebp
mov ecx, dword [esp + 0x174]
inc eax
mov dword [esp + 0x2c], eax
cmp eax, dword [ecx + 0x20]
jl 0x4c3214
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx eax, word [eax + 2]
lea eax, [ecx + eax*2]
jmp 0x4c3417
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x174]
jmp 0x4c3203
mov ecx, dword [esp + 0x14]
mov eax, 2
mov ebp, 1
lea eax, [ecx + eax*2]
jmp 0x4c3417
mov eax, dword [ebp + 0xa8]
test eax, eax
jne 0x4c32ab
movzx eax, word [esi + 2]
lea eax, [esi + eax*2]
jmp 0x4c3421
movzx edx, word [esi + 6]
cmp edx, 0xffff
je 0x4c340a
cmp edx, dword [eax + 4]
je 0x4c340a
xor ebp, ebp
cmp ecx, 0x8a
jne 0x4c3404
mov ecx, dword [esp + 0x174]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x28], ebp
mov eax, dword [ecx + 0x28]
mov edi, eax
mov esi, dword [ecx + 0x20]
xor ecx, ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], eax
test esi, esi
jle 0x4c333b
mov dword [esp + 0x28], ebp
xor ebx, ebx
mov ebp, eax
nop
movzx eax, word [edi]
cmp eax, edx
je 0x4c332b
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x24]
lea edi, [eax*2]
lea eax, [ebx + 1]
add edi, ebp
mov dword [esp + 0x3c], eax
mov ecx, eax
mov ebp, edi
mov ebx, eax
cmp eax, esi
jl 0x4c3300
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x30], edi
cmp ecx, esi
jge 0x4c3400
cmp edi, eax
jbe 0x4c3398
mov ebx, dword [esp + 0x28]
lea ebp, [edi + 2]
mov esi, edi
mov edi, dword [esp + 0x174]
mov eax, dword [edi + 0x24]
mov ecx, ebp
add eax, eax
sub esi, eax
lea edx, [esi + 2]
call fcn.004cbef0
test eax, eax
jne 0x4c3384
mov eax, dword [edi + 0xa8]
xor ebx, ebx
movzx ecx, word [esi]
cmp ecx, dword [eax + 4]
sete bl
je 0x4c3384
cmp esi, dword [edi + 0x28]
ja 0x4c3357
mov edi, dword [esp + 0x30]
test ebx, ebx
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x18]
jne 0x4c33f2
mov ebp, dword [esp + 0x28]
mov edx, dword [esp + 0x174]
mov esi, dword [esp + 0x3c]
inc esi
cmp esi, dword [edx + 0x20]
jge 0x4c3400
mov ebx, dword [esp + 0x28]
lea ebp, [edi + 2]
mov eax, dword [edx + 0x24]
mov ecx, ebp
lea edx, [edi + eax*2]
mov edi, edx
add edx, 2
call fcn.004cbef0
test eax, eax
jne 0x4c33e6
mov edx, dword [esp + 0x174]
xor ebx, ebx
movzx ecx, word [edi]
mov eax, dword [edx + 0xa8]
cmp ecx, dword [eax + 4]
sete bl
je 0x4c33e6
inc esi
cmp esi, dword [edx + 0x20]
jl 0x4c33b0
mov dword [esp + 0x28], ebx
test ebx, ebx
mov ebx, dword [esp + 0x18]
je 0x4c33fc
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
jmp 0x4c340f
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
movzx eax, word [esi + 2]
jmp 0x4c3414
mov ebp, 1
mov eax, 2
lea eax, [esi + eax*2]
mov ecx, eax
test ebp, ebp
jne 0x4c7f52
mov ebp, dword [esp + 0x174]
mov ecx, eax
cmp word [ecx], 0x71
je 0x4c7f59
mov edi, dword [esp + 0x170]
lea esi, [eax + 4]
mov dword [esp + 0x14], esi
jmp 0x4c2e02
movzx edx, word [esi + 2]
mov dword [ebp + 0x94], edx
lea esi, [edx + edx]
cmp esi, dword [ebp + 0x14]
jl 0x4c3470
mov esi, dword [esp + 0x14]
add esi, 4
mov dword [ebp + 0x40], 1
mov dword [esp + 0x14], esi
jmp 0x4c2e02
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
sub eax, edx
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*8], eax
mov ecx, ebx
sub ecx, dword [ebp + 0x78]
mov eax, dword [ebp + 0xc]
sar ecx, 1
mov dword [eax + edx*8 + 4], ecx
cmp edi, esi
jg 0x4c349a
lea edi, [esi + 2]
mov dword [esp + 0x170], edi
mov esi, dword [esp + 0x14]
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x4c2e02
cmp dword [ebp + 0x9c], 1
mov esi, dword [ebp + 0xb0]
jne 0x4c34ca
mov dword [ebp + 0x9c], 0
mov edi, 1
jmp 0x4c34d0
xor edi, edi
nop dword [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.004c2d00
add esp, 0x14
cmp eax, 1
je 0x4c353b
cmp eax, 0xfffffc19
je 0x4c353b
test eax, eax
je 0x4c3516
cmp eax, 0xfffffc20
jne 0x4c80e4
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 0x4c34d0
mov esi, dword [esp + 0x14]
jmp 0x4c354f
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.0x4c471c
test edi, edi
jne 0x4c836e
movzx eax, word [esi + 2]
cmp word [esi + eax*2], 0x71
lea esi, [esi + eax*2]
je 0x4c3561
mov edi, dword [ebp + 0x90]
add esi, 4
mov dword [esp + 0x14], esi
mov dword [esp + 0x170], edi
jmp 0x4c2e02
cmp dword [ebp + 0x9c], 1
mov esi, dword [ebp + 0xb0]
jne 0x4c35a8
mov dword [ebp + 0x9c], 0
mov edi, 1
jmp 0x4c35aa
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.004c2d00
add esp, 0x14
mov dword [ebp + 0xb0], esi
cmp eax, 1
je case.default.0x4c471c
cmp eax, 0xfffffc19
je case.default.0x4c471c
cmp eax, 0xfffffc1e
je 0x4c362f
cmp eax, 0xfffffc1d
je 0x4c362f
cmp eax, 0xfffffc1a
je 0x4c362f
test eax, eax
je 0x4c3615
cmp eax, 0xfffffc20
jne 0x4c80e4
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 0x4c35b0
mov esi, ecx
jmp 0x4c3641
mov esi, dword [esp + 0x14]
movzx eax, word [esi + 2]
cmp word [esi + eax*2], 0x71
lea esi, [esi + eax*2]
je 0x4c3633
test edi, edi
jne 0x4c836e
mov edi, dword [esp + 0x170]
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x4c2e02
movzx ecx, word [esi + 2]
test ecx, ecx
je 0x4c3691
mov edx, dword [ebp + 0x78]
add ebx, 0xfffffffe
dec ecx
mov dword [esp + 0x18], ebx
cmp ebx, edx
jb case.default.0x4c471c
mov ax, word [ebx]
and ax, word [esp + 0x48]
cmp ax, word [esp + 0x4c]
jne 0x4c368d
add ebx, 0xfffffffe
mov dword [esp + 0x18], ebx
test ecx, ecx
jg 0x4c3667
cmp ebx, dword [ebp + 0x88]
jae 0x4c369f
mov dword [ebp + 0x88], ebx
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x4c2e02
mov esi, dword [0x4fd2f8]
test esi, esi
je 0x4c3789
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.0x4c471c
js 0x4c80e4
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x170]
add esi, 0xc
mov dword [esp + 0x14], esi
jmp 0x4c2e02
mov ecx, dword [ebp + 0x74]
movzx eax, word [esi + 2]
lea edi, [ecx + eax*2]
cmp edi, ecx
jne 0x4c37b2
xor ecx, ecx
jmp 0x4c37b6
movzx ecx, word [edi + 4]
mov edx, dword [ebp + 0xa8]
mov eax, edx
test edx, edx
je 0x4c37d6
cmp ecx, dword [eax + 4]
jne 0x4c37d0
cmp ebx, dword [eax + 0x10]
je 0x4c81eb
mov eax, dword [eax]
test eax, eax
jne 0x4c37c2
lea eax, [esp + 0x58]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x68], ebx
add esi, 4
mov dword [esp + 0x58], edx
mov dword [ebp + 0xa8], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x14], esi
mov dword [esp + 0x64], eax
cmp eax, 0x1e
jg 0x4c380c
lea ecx, [esp + 0xf0]
mov dword [esp + 0x60], ecx
jmp 0x4c382b
shl eax, 2
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov ecx, eax
add esp, 4
mov dword [esp + 0x60], ecx
test ecx, ecx
je 0x4c8221
mov eax, dword [esp + 0x64]
shl eax, 2
push eax
push dword [ebp + 0xc]
push ecx
call sub.VCRUNTIME140.dll_memcpy
movzx ebp, word [edi]
add esp, 0xc
mov ecx, dword [esp + 0x174]
mov eax, 0x82
cmp bp, ax
jb 0x4c3859
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 + 0x4e3380]
push dword [esp + 0x17c]
lea edx, [edi + eax*2]
call fcn.004c2d00
mov ecx, dword [esp + 0x78]
add esp, 0x14
shl ecx, 2
mov esi, eax
mov eax, dword [esp + 0x174]
push ecx
push dword [esp + 0x64]
push dword [eax + 0xc]
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esp + 0x180]
add esp, 0xc
mov eax, dword [esp + 0x58]
mov dword [ecx + 0xa8], eax
cmp esi, 1
je 0x4c3935
cmp esi, 0xfffffc19
je 0x4c3935
test esi, esi
je 0x4c38e5
cmp esi, 0xfffffc20
jne 0x4c81fb
lea eax, [esp + 0x58]
mov dword [ecx + 0xa8], eax
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x4c3845
mov eax, dword [esp + 0x58]
mov dword [ecx + 0xa8], eax
lea ecx, [esp + 0xf0]
mov eax, dword [esp + 0x60]
cmp eax, ecx
je case.default.0x4c471c
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0xf0]
cmp eax, ecx
je 0x4c394e
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov ebp, dword [esp + 0x174]
mov edi, dword [esp + 0x170]
mov ebx, dword [ebp + 0x84]
mov eax, dword [ebp + 0x80]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x16c], eax
jmp 0x4c2dfe
movzx eax, word [esi + 2]
cmp word [esi + eax*2], 0x71
lea esi, [esi + eax*2]
je case.0x4c2e2e.113
mov dword [esp + 0x14], esi
jmp 0x4c2e02
mov eax, dword [esp + 0x17c]
add esi, 2
inc eax
mov edx, esi
push eax
push dword [esp + 0x17c]
mov ecx, ebx
push ebp
push edi
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov ecx, esi
nop dword [eax]
movzx eax, word [esi + 2]
cmp word [ecx + eax*2], 0x71
lea esi, [ecx + eax*2]
mov ecx, esi
je 0x4c39d0
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x4c2e02
add esi, 2
mov dword [esp + 0x14], esi
mov edx, esi
mov ecx, esi
nop word [eax + eax]
movzx eax, word [edx + 2]
cmp word [ecx + eax*2], 0x71
lea edx, [ecx + eax*2]
mov ecx, edx
je 0x4c3a00
mov eax, dword [esp + 0x17c]
add edx, 4
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
push ebp
push edi
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
test eax, eax
je 0x4c2e02
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
lea eax, [esi + 2]
mov ecx, eax
nop
movzx eax, word [eax + 2]
cmp word [ecx + eax*2], 0x71
lea eax, [ecx + eax*2]
mov ecx, eax
je 0x4c3a50
lea esi, [eax + 4]
mov dword [esp + 0x14], esi
jmp 0x4c2e02
movzx edx, word [esi + 2]
add esi, 2
mov dword [esp + 0x14], esi
mov ebp, 1
mov dword [esp + 0x20], edx
mov dword [esp + 0x30], ebp
cmp edx, 0x80
je 0x4c3a98
cmp edx, 0x85
jne 0x4c3c75
movzx ebp, word [esi + 4]
mov esi, dword [esp + 0x174]
lea eax, [ebp*2]
cmp eax, dword [esi + 0x14]
jge 0x4c3c6f
mov ecx, dword [esi + 0xc]
xor edi, edi
mov eax, dword [esp + 0x14]
sub eax, dword [esi + 0x74]
sar eax, 1
mov dword [esp + 0x3c], eax
mov eax, dword [ecx + ebp*8]
mov dword [esp + 0x38], eax
mov eax, dword [ecx + ebp*8 + 4]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x10]
sub eax, ebp
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x2c], eax
mov eax, esi
mov esi, dword [eax + 0x94]
jmp 0x4c3af7
mov eax, dword [esp + 0x174]
mov ecx, dword [eax + 0x10]
mov edx, ebx
sub edx, dword [eax + 0x78]
sub ecx, ebp
mov eax, dword [eax + 0xc]
sar edx, 1
cmp dword [esp + 0x20], 0x82
mov dword [eax + ecx*4], edx
jb 0x4c3b24
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 + 0x4e3380]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
lea edx, [ecx + eax*2]
mov ecx, ebx
call fcn.004c2d00
add esp, 0x14
cmp eax, 0xfffffc1b
jne 0x4c3bae
mov eax, dword [esp + 0x174]
mov edi, 1
mov ecx, dword [eax + 0x90]
mov ebx, dword [eax + 0x84]
mov eax, dword [eax + 0x74]
mov dword [esp + 0x170], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x18], ebx
lea eax, [eax + ecx*2]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x94]
jmp 0x4c3af7
mov edx, dword [esp + 0x174]
cmp eax, 0xfffffc20
jne 0x4c3be9
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov eax, 0xfffffc20
cmp dword [edx + 0x80], ecx
jae 0x4c3be9
mov eax, dword [esp + 0x14]
cmp word [eax], 0x71
je 0x4c3bf1
cmp word [ecx], 0x71
mov eax, 0xfffffc20
je 0x4c3bf1
test eax, eax
jne 0x4c80e4
mov ecx, dword [esp + 0x14]
mov dword [edx + 0x94], esi
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x71
lea ecx, [ecx + eax*2]
mov dword [esp + 0x14], ecx
je 0x4c3af0
test edi, edi
jne 0x4c3c42
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x38]
mov dword [eax + ebp*8], ecx
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x28]
mov dword [eax + ebp*8 + 4], ecx
mov ecx, dword [edx + 0x10]
mov edx, dword [esp + 0x2c]
sub ecx, ebp
mov ebp, dword [esp + 0x174]
mov eax, dword [ebp + 0xc]
mov dword [eax + ecx*4], edx
jmp 0x4c3c49
mov ebp, dword [esp + 0x174]
cmp dword [esp + 0x30], 0
jne 0x4c3c58
test edi, edi
je case.default.0x4c471c
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x170]
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x4c2e02
mov esi, dword [esp + 0x14]
xor ebp, ebp
mov ecx, dword [esp + 0x174]
xor edi, edi
sub esi, dword [ecx + 0x74]
sar esi, 1
cmp edx, 0x82
jb 0x4c3c95
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 + 0x4e3380]
lea edx, [ecx + eax*2]
mov ecx, ebx
call fcn.004c2d00
add esp, 0x14
cmp eax, 0xfffffc1b
jne 0x4c3d0c
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 0x4c3c83
cmp eax, 0xfffffc20
jne 0x4c3d5d
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x174]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov eax, 0xfffffc20
cmp dword [edx + 0x80], ecx
mov edx, dword [esp + 0x14]
jae 0x4c3d61
cmp word [edx], 0x71
je 0x4c3d69
cmp word [ecx], 0x71
jne 0x4c3d61
movzx eax, word [edx + 2]
mov ecx, dword [esp + 0x174]
lea edx, [edx + eax*2]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x20]
jmp 0x4c3c83
mov edx, dword [esp + 0x14]
test eax, eax
jne 0x4c80e4
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x71
lea edx, [edx + eax*2]
mov ecx, dword [esp + 0x174]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x20]
je 0x4c3c83
test edi, edi
jne 0x4c3d96
test ebp, ebp
je case.default.0x4c471c
mov esi, dword [esp + 0x14]
mov ebp, ecx
mov edi, dword [esp + 0x170]
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x4c2e02
movzx eax, word [esi + 2]
mov ebp, esi
add eax, eax
mov edx, 0x82
sub ebp, eax
movzx eax, word [ebp]
mov ecx, eax
cmp ax, dx
jae 0x4c3dd8
cmp ecx, 0x7b
je 0x4c3dd8
mov dword [esp + 0x30], 0
jmp 0x4c3df1
mov edx, dword [esp + 0x178]
lea eax, [edx + 4]
mov edx, dword [edx]
mov eax, dword [eax]
mov dword [esp + 0x178], edx
mov dword [esp + 0x30], eax
cmp ecx, 0x77
jb 0x4c3dff
cmp ecx, 0x7a
jbe 0x4c834e
cmp ecx, 0x7c
je 0x4c834e
cmp ecx, 0x7f
je 0x4c3e2f
mov eax, 0x84
cmp cx, ax
je 0x4c3e2f
mov eax, 0x80
cmp cx, ax
je 0x4c3e2f
mov eax, 0x85
cmp cx, ax
jne 0x4c3f10
mov edx, dword [esp + 0x174]
movzx edi, word [ebp + 4]
mov eax, dword [edx + 0xa8]
lea esi, [edi + edi]
test eax, eax
je 0x4c3e50
cmp dword [eax + 4], edi
je 0x4c8231
mov dword [edx + 0x94], edi
cmp esi, dword [edx + 0x14]
jl 0x4c3e9d
mov edi, dword [esp + 0x170]
mov dword [edx + 0x40], 1
mov esi, dword [esp + 0x14]
movzx eax, word [esi]
cmp eax, 0x72
je 0x4c3e7f
cmp ebx, dword [esp + 0x30]
jne 0x4c7faf
add esi, 4
cmp word [ebp], 0x7b
mov dword [esp + 0x14], esi
je 0x4c8304
mov ebp, dword [esp + 0x174]
jmp 0x4c2e02
mov ecx, dword [esp + 0x170]
cmp esi, ecx
jle 0x4c3ed6
mov eax, dword [edx + 0xc]
lea ecx, [eax + ecx*4]
lea edx, [eax + esi*4]
cmp ecx, edx
jae 0x4c3ecf
mov eax, ecx
nop word [eax + eax]
mov dword [ecx], 0xffffffff
lea ecx, [eax + 4]
mov eax, ecx
cmp ecx, edx
jb 0x4c3ec0
mov edx, dword [esp + 0x174]
mov eax, dword [edx + 0x10]
mov ecx, dword [edx + 0xc]
sub eax, edi
mov edi, dword [esp + 0x170]
mov eax, dword [ecx + eax*4]
mov dword [ecx + esi*4], eax
mov ecx, ebx
sub ecx, dword [edx + 0x78]
mov eax, dword [edx + 0xc]
sar ecx, 1
mov dword [eax + esi*4 + 4], ecx
cmp edi, esi
jg 0x4c3e69
lea edi, [esi + 2]
mov dword [esp + 0x170], edi
jmp 0x4c3e69
mov edx, dword [esp + 0x174]
jmp 0x4c3e6d
cmp dword [ebp + 0x44], 0
je case.0x4c2e2e.1
cmp ebx, dword [ebp + 0x78]
je case.default.0x4c471c
cmp ebx, dword [ebp + 0x78]
jne case.default.0x4c471c
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c2e02
cmp dword [ebp + 0x44], 0
je 0x4c3f54
cmp ebx, dword [ebp + 0x78]
je case.default.0x4c471c
mov ecx, dword [ebp + 0x78]
jmp 0x4c3f5f
mov ecx, dword [ebp + 0x78]
cmp ebx, ecx
je case.0x4c471c.10
cmp ebx, dword [ebp + 0x7c]
je case.default.0x4c471c
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x4c3fa5
cmp ebx, ecx
jbe 0x4c3f8f
push 1
lea eax, [ebp + 0x1c]
push eax
push ecx
mov ecx, ebx
call fcn.004cc040
add esp, 0xc
test eax, eax
je 0x4c3f8f
mov eax, 1
jmp 0x4c3f91
xor eax, eax
test eax, eax
je case.default.0x4c471c
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c2e02
mov esi, dword [ebp + 0x1c]
lea edx, [esi + esi]
lea eax, [edx + ecx]
cmp ebx, eax
jb case.default.0x4c471c
mov ecx, ebx
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [ebp + 0x2c]
jne case.default.0x4c471c
cmp esi, 1
je 0x4c3fda
mov ax, word [ecx + 2]
cmp ax, word [ebp + 0x2e]
jne case.default.0x4c471c
mov esi, dword [esp + 0x14]
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c2e02
mov ecx, dword [ebp + 0x98]
mov eax, dword [ebp + 0x78]
lea eax, [eax + ecx*2]
cmp ebx, eax
jne case.default.0x4c471c
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c2e02
add esi, 2
mov dword [esp + 0x16c], ebx
mov dword [esp + 0x14], esi
jmp 0x4c2e02
mov ecx, dword [ebp + 0x7c]
cmp ebx, ecx
jae 0x4c4090
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x4c4050
push 1
lea eax, [ebp + 0x1c]
push eax
push ecx
mov ecx, ebx
call fcn.004cbf80
add esp, 0xc
test eax, eax
je case.default.0x4c471c
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c2e02
mov edx, dword [ebp + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja case.default.0x4c471c
mov ax, word [ebx]
cmp ax, word [ebp + 0x2c]
jne case.default.0x4c471c
cmp edx, 1
je case.0x4c471c.10
mov ax, word [ebx + 2]
cmp ax, word [ebp + 0x2e]
jne case.default.0x4c471c
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c2e02
cmp dword [ebp + 0x48], 0
jne case.default.0x4c471c
mov eax, dword [ebp + 0x8c]
test eax, eax
je case.0x4c471c.10
cmp ebx, dword [ebp + 0x88]
jbe case.0x4c471c.10
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4c9de5
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c2e02
cmp dword [ebp + 0x48], 0
jne case.default.0x4c471c
cmp dword [ebp + 0x58], 0
je case.0x4c2e2e.23
cmp ebx, dword [ebp + 0x7c]
jb case.default.0x4c471c
mov eax, dword [ebp + 0x8c]
test eax, eax
je case.0x4c471c.10
cmp ebx, dword [ebp + 0x88]
jbe case.0x4c471c.10
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4c9de5
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c2e02
mov ecx, dword [ebp + 0x7c]
cmp ebx, ecx
jae 0x4c418c
mov edx, dword [ebp + 0x18]
lea esi, [ebp + 0x1c]
test edx, edx
je 0x4c4148
push 1
push esi
push ecx
mov ecx, ebx
call fcn.004cbf80
add esp, 0xc
test eax, eax
je case.default.0x4c471c
jmp 0x4c4177
mov edx, dword [esi]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja case.default.0x4c471c
mov ax, word [ebx]
cmp ax, word [ebp + 0x2c]
jne case.default.0x4c471c
cmp edx, 1
je 0x4c4177
mov ax, word [ebx + 2]
cmp ax, word [ebp + 0x2e]
jne case.default.0x4c471c
mov ecx, dword [esi]
mov eax, dword [ebp + 0x7c]
add ecx, ecx
sub eax, ecx
cmp ebx, eax
jne case.default.0x4c471c
mov esi, dword [esp + 0x14]
mov eax, dword [ebp + 0x8c]
test eax, eax
je case.0x4c471c.10
cmp ebx, dword [ebp + 0x88]
jbe case.0x4c471c.10
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4c9de5
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c2e02
cmp ebx, dword [ebp + 0x78]
jne 0x4c4223
lea edi, [ebp + 0x88]
xor esi, esi
mov ecx, 0x54
mov eax, ebp
lea edx, [eax + ecx]
cmp ebx, dword [ebp + 0x7c]
jb 0x4c42e2
mov eax, dword [ebp + 0x8c]
test eax, eax
je 0x4c4200
cmp ebx, dword [edi]
jbe 0x4c4200
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4c9de5
xor ecx, ecx
lea edx, [ecx + 1]
mov edi, dword [esp + 0x14]
movzx eax, word [edi]
add edi, 2
mov dword [esp + 0x14], edi
cmp eax, 5
jne 0x4c438d
xor esi, edx
jmp 0x4c438f
mov ax, word [ebx - 2]
lea edx, [ebx - 2]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4c423f
add edx, 0xfffffffe
cmp edx, dword [ebp + 0x88]
lea edi, [ebp + 0x88]
jae 0x4c424f
mov dword [edi], edx
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c427a
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 0x4c42bf
cmp ecx, 0x5f
je 0x4c42d8
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4e1180]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
mov eax, dword [eax*4 + 0x4e3760]
cmp eax, 1
je 0x4c42d8
cmp eax, 3
je 0x4c42d8
jmp 0x4c41cd
cmp ecx, 0x100
jae 0x4c41cd
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
je 0x4c41cd
mov esi, 1
jmp 0x4c41cf
movzx ecx, word [ebx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c430d
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
cmp dword [edx], 0
je 0x4c4368
cmp ecx, 0x5f
jne 0x4c4323
mov ecx, 1
xor edx, edx
jmp 0x4c4205
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4e1180]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
mov eax, dword [eax*4 + 0x4e3760]
cmp eax, 1
je 0x4c435c
cmp eax, 3
jne 0x4c4200
mov ecx, 1
xor edx, edx
jmp 0x4c4205
cmp ecx, 0x100
jae 0x4c4200
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
je 0x4c4200
mov ecx, 1
xor edx, edx
jmp 0x4c4205
xor esi, ecx
test esi, esi
jne case.default.0x4c471c
mov edi, dword [esp + 0x170]
jmp 0x4c2dfe
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x7c]
test edx, edx
je 0x4c43d9
cmp ebx, ecx
jae 0x4c43cd
push 1
lea eax, [ebp + 0x1c]
push eax
push ecx
mov ecx, ebx
call fcn.004cbf80
add esp, 0xc
test eax, eax
je 0x4c43cd
mov eax, 1
jmp 0x4c43cf
xor eax, eax
test eax, eax
jne case.default.0x4c471c
jmp case.0x4c2e2e.13
mov edx, dword [ebp + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja case.0x4c2e2e.13
mov ax, word [ebx]
cmp ax, word [ebp + 0x2c]
jne case.0x4c2e2e.13
cmp edx, 1
je case.default.0x4c471c
mov ax, word [ebx + 2]
cmp ax, word [ebp + 0x2e]
je case.default.0x4c471c
mov eax, dword [ebp + 0x7c]
cmp ebx, eax
jae 0x4c837e
add ebx, 2
mov dword [esp + 0x18], ebx
cmp ebx, eax
jae 0x4c4437
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4c4437
add ebx, 2
mov dword [esp + 0x18], ebx
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c2e02
cmp ebx, dword [ebp + 0x7c]
jae 0x4c837e
add ebx, 2
add esi, 2
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], esi
jmp 0x4c2e02
cmp ebx, dword [ebp + 0x7c]
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c44a0
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 case.0x4c471c.10
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 4
jne case.default.0x4c471c
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c2e02
cmp ebx, dword [ebp + 0x7c]
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c4506
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.0x4c471c
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 4
je case.default.0x4c471c
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c2e02
cmp ebx, dword [ebp + 0x7c]
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c456c
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 case.0x4c471c.10
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 1
jne case.default.0x4c471c
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c2e02
cmp ebx, dword [ebp + 0x7c]
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c45d2
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.0x4c471c
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 1
je case.default.0x4c471c
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c2e02
cmp ebx, dword [ebp + 0x7c]
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c4638
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 case.0x4c471c.10
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
jne case.default.0x4c471c
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c2e02
cmp ebx, dword [ebp + 0x7c]
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c469e
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.0x4c471c
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
je case.default.0x4c471c
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c2e02
mov edx, dword [ebp + 0x7c]
cmp ebx, edx
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c4706
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 0x4c4748
je case.0x4c471c.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4c471c
jmp dword [ecx*4 + 0x4ca4f0]
cmp ebx, edx
jae case.0x4c471c.10
cmp word [ebx], 0xa
jne case.0x4c471c.10
add ebx, 2
add esi, 2
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], esi
jmp 0x4c2e02
sub ecx, 0x2028
je case.0x4c471c.11
sub ecx, 1
jne case.default.0x4c471c
cmp dword [ebp + 0x68], 0
jne case.default.0x4c471c
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c2e02
cmp ebx, dword [ebp + 0x7c]
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c47b0
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 0x4c480e
je case.default.0x4c471c
cmp ecx, 0xa0
ja 0x4c47ea
je case.default.0x4c471c
cmp ecx, 9
je case.default.0x4c471c
cmp ecx, 0x20
je case.default.0x4c471c
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c2e02
cmp ecx, 0x1680
je case.default.0x4c471c
cmp ecx, 0x180e
je case.default.0x4c471c
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c2e02
cmp ecx, 0x3000
ja case.0x4c4836.8203
je case.default.0x4c471c
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4c4836.8203
movzx eax, byte [ecx + 0x4ca508]
jmp dword [eax*4 + 0x4ca500]
cmp ebx, dword [ebp + 0x7c]
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c487e
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 0x4c48c2
je case.0x4c4836.8203
cmp ecx, 0xa0
ja 0x4c48ab
je case.0x4c4836.8203
cmp ecx, 9
je case.0x4c4836.8203
cmp ecx, 0x20
jmp 0x4c3f2e
cmp ecx, 0x1680
je case.0x4c4836.8203
cmp ecx, 0x180e
jmp 0x4c3f2e
cmp ecx, 0x3000
ja case.default.0x4c471c
je case.0x4c4836.8203
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x4c471c
movzx eax, byte [ecx + 0x4ca570]
jmp dword [eax*4 + 0x4ca568]
cmp ebx, dword [ebp + 0x7c]
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c4932
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 0x4c4953
je case.default.0x4c471c
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4c4836.8203
jmp dword [ecx*4 + 0x4ca5d0]
sub ecx, 0x2028
je case.default.0x4c471c
sub ecx, 1
je case.default.0x4c471c
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c2e02
cmp ebx, dword [ebp + 0x7c]
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c49b5
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 0x4c49d6
je case.0x4c4836.8203
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4c471c
jmp dword [ecx*4 + 0x4ca5e0]
sub ecx, 0x2028
je case.0x4c4836.8203
sub ecx, 1
jmp 0x4c3f2e
cmp ebx, dword [ebp + 0x7c]
jae 0x4c837e
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c4a2b
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
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4e1180]
mov eax, edx
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4d47a0]
movzx ecx, word [esi + 2]
cmp ecx, 8
ja case.default.0x4c4a56
jmp dword [ecx*4 + 0x4ca5f0]
cmp dword [esp + 0x20], 0xf
jmp 0x4c4b9a
mov al, byte [eax*8 + 0x4e00a1]
cmp al, 9
je 0x4c4b89
cmp al, 5
je 0x4c4b89
cmp al, 8
je 0x4c4b89
xor ecx, ecx
jmp 0x4c4b8e
movzx ecx, byte [eax*8 + 0x4e00a1]
xor edx, edx
movzx eax, word [esi + 4]
cmp eax, dword [ecx*4 + 0x4e3760]
setne dl
xor eax, eax
cmp dword [esp + 0x20], 0x10
sete al
cmp edx, eax
jmp 0x4c4b9a
movzx eax, byte [eax*8 + 0x4e00a1]
xor ecx, ecx
cmp word [esi + 4], ax
setne cl
xor eax, eax
cmp dword [esp + 0x20], 0x10
jmp 0x4c4b95
movzx eax, byte [eax*8 + 0x4e00a0]
xor ecx, ecx
cmp word [esi + 4], ax
setne cl
xor eax, eax
cmp dword [esp + 0x20], 0x10
jmp 0x4c4b95
movzx eax, byte [eax*8 + 0x4e00a1]
mov eax, dword [eax*4 + 0x4e3760]
cmp eax, 1
je 0x4c4b89
cmp eax, 3
je 0x4c4b89
xor ecx, ecx
jmp 0x4c4b8e
movzx eax, byte [eax*8 + 0x4e00a1]
cmp dword [eax*4 + 0x4e3760], 6
je 0x4c4b89
cmp edx, 9
je 0x4c4b89
cmp edx, 0xa
je 0x4c4b89
cmp edx, 0xc
je 0x4c4b89
cmp edx, 0xd
je 0x4c4b89
xor ecx, ecx
jmp 0x4c4b8e
movzx eax, byte [eax*8 + 0x4e00a1]
cmp dword [eax*4 + 0x4e3760], 6
je 0x4c4b89
cmp edx, 9
je 0x4c4b89
cmp edx, 0xa
je 0x4c4b89
cmp edx, 0xb
jmp 0x4c4b36
movzx eax, byte [eax*8 + 0x4e00a1]
mov eax, dword [eax*4 + 0x4e3760]
cmp eax, 1
je 0x4c4b89
cmp eax, 3
je 0x4c4b89
cmp edx, 0x5f
je 0x4c4b89
xor ecx, ecx
jmp 0x4c4b8e
mov ecx, 1
xor eax, eax
cmp dword [esp + 0x20], 0xf
sete al
cmp ecx, eax
je case.default.0x4c471c
add esi, 6
mov dword [esp + 0x14], esi
jmp 0x4c2e02
mov esi, dword [ebp + 0x7c]
cmp ebx, esi
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c4bef
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 + 0x4e1180]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
cmp dword [eax*4 + 0x4e3760], 2
je case.default.0x4c471c
cmp ebx, esi
jae 0x4c4c9e
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 0x4c4c65
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 + 0x4e1180]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
cmp dword [eax*4 + 0x4e3760], 2
jne 0x4c4c9a
lea ebx, [ebx + edx*2]
cmp ebx, esi
jb 0x4c4c30
mov dword [esp + 0x18], ebx
mov esi, dword [esp + 0x14]
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c2e02
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 + 0x38], edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x14], esi
cmp ecx, edi
jge 0x4c4ce4
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + ecx*4]
test esi, esi
js 0x4c4ce4
mov ebp, dword [eax + ecx*4 + 4]
sub ebp, esi
jmp 0x4c4cee
mov ebp, dword [ebp + 0x50]
neg ebp
sbb ebp, ebp
neg ebp
dec ebp
mov eax, dword [esp + 0x14]
movzx eax, word [eax]
mov esi, eax
lea edi, [eax - 0x62]
cmp edi, 7
ja case.default.0x4c4d0a
movzx eax, byte [edi + 0x4ca61c]
jmp dword [eax*4 + 0x4ca614]
add dword [esp + 0x14], 2
mov eax, edi
movsx esi, byte [edi + 0x4d4358]
and eax, 1
mov dword [esp + 0x30], eax
movsx eax, byte [edi + 0x4d4350]
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4c4d69
mov dword [esp + 0x28], closesocket
jmp 0x4c4d69
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 + 0x50]
add edi, 6
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x170]
test ebp, ebp
je 0x4c2df7
jns 0x4c4d82
test esi, esi
je 0x4c2df7
cmp esi, 1
jl 0x4c4dbf
mov edi, 1
nop dword [eax]
push edx
push dword [esp + 0x178]
mov edx, ebx
push ebp
call fcn.004c2b50
add esp, 0xc
test eax, eax
js 0x4c87c9
mov ecx, dword [esp + 0x3c]
lea ebx, [ebx + eax*2]
mov edx, dword [esp + 0x38]
inc edi
mov dword [esp + 0x18], ebx
cmp edi, esi
jle 0x4c4d90
mov eax, dword [esp + 0x28]
cmp esi, eax
je 0x4c2df0
cmp dword [esp + 0x30], 0
je 0x4c83cd
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.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov edi, esi
cmp esi, dword [esp + 0x28]
jge case.default.0x4c471c
push dword [esp + 0x38]
mov esi, dword [esp + 0x178]
mov edx, ebx
mov ecx, dword [esp + 0x40]
push esi
push ebp
call fcn.004c2b50
add esp, 0xc
test eax, eax
js 0x4c83ad
mov edx, dword [esp + 0x14]
lea ebx, [ebx + eax*2]
mov eax, dword [esp + 0x17c]
lea esi, [edi + 1]
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.004c2d00
add esp, 0x14
mov edi, esi
test eax, eax
je 0x4c4e13
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.004c2b50
add esp, 0xc
test eax, eax
js 0x4c83ad
mov edi, dword [esp + 0x170]
lea ebx, [ebx + eax*2]
mov dword [esp + 0x18], ebx
mov ebp, esi
jmp 0x4c2dfe
movzx eax, word [esi + 0x22]
lea ebp, [esi + 2]
add esi, 0x22
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x14], esi
mov edx, eax
lea ecx, [eax - 0x62]
cmp ecx, 7
ja case.default.0x4c4ee2
movzx eax, byte [ecx + 0x4ca62c]
jmp dword [eax*4 + 0x4ca624]
movsx eax, byte [ecx + 0x4d4350]
mov edx, ecx
movsx edi, byte [ecx + 0x4d4358]
and edx, 1
add esi, 2
mov dword [esp + 0x2c], edx
test eax, eax
mov ecx, closesocket
cmove eax, ecx
jmp 0x4c4f30
movzx edi, word [esi + 2]
xor eax, eax
cmp edx, 0x69
mov ecx, closesocket
sete al
mov dword [esp + 0x2c], eax
movzx eax, word [esi + 4]
test eax, eax
cmove eax, ecx
add esi, 6
mov dword [esp + 0x14], esi
mov esi, 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], edi
cmp edi, esi
jl 0x4c4fdc
jmp 0x4c4f5e
mov edi, 1
mov dword [esp + 0x28], 1
mov dword [esp + 0x38], edi
mov esi, edi
mov ecx, dword [esp + 0x174]
mov ebp, dword [ecx + 0x7c]
cmp ebx, ebp
jae 0x4c89a3
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c4fa8
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
cmp edx, 0xff
jbe 0x4c4fb7
cmp dword [esp + 0x20], 0x6a
jmp 0x4c4fcd
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [esp + 0x3c]
test byte [edx + ecx], al
je case.default.0x4c471c
inc esi
cmp esi, edi
jle 0x4c4f68
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
cmp edi, eax
je 0x4c2df0
cmp dword [esp + 0x2c], 0
je 0x4c84f6
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.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov esi, edi
cmp esi, dword [esp + 0x28]
jge case.default.0x4c471c
mov ecx, dword [esp + 0x174]
cmp ebx, dword [ecx + 0x7c]
jae 0x4c89aa
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c507a
movzx eax, word [ebx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add ebx, 2
add edx, 0x10000
cmp edx, 0xff
jbe 0x4c8494
cmp dword [esp + 0x20], 0x6a
je case.default.0x4c471c
jmp 0x4c84b3
movzx eax, word [esi + 2]
lea ebp, [esi + 4]
mov dword [esp + 0x44], ebp
lea esi, [esi + eax*2]
movzx eax, word [esi]
mov dword [esp + 0x14], esi
mov edx, eax
lea ecx, [eax - 0x62]
cmp ecx, 7
ja case.default.0x4c50c0
movzx eax, byte [ecx + 0x4ca63c]
jmp dword [eax*4 + 0x4ca634]
movsx eax, byte [ecx + 0x4d4350]
mov edx, ecx
movsx edi, byte [ecx + 0x4d4358]
add esi, 2
and edx, 1
mov dword [esp + 0x14], esi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4c5120
mov dword [esp + 0x28], closesocket
jmp 0x4c5120
movzx edi, word [esi + 2]
xor eax, eax
cmp edx, 0x69
mov ecx, closesocket
sete al
mov dword [esp + 0x2c], eax
movzx eax, word [esi + 4]
test eax, eax
cmove eax, ecx
add esi, 6
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], esi
mov esi, 1
cmp edi, esi
jl 0x4c51a1
jmp 0x4c5140
mov edi, 1
mov dword [esp + 0x28], 1
mov esi, edi
nop
mov ecx, dword [esp + 0x174]
cmp ebx, dword [ecx + 0x7c]
jae 0x4c89aa
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c5188
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.004cc130
add esp, 4
test eax, eax
je case.default.0x4c471c
inc esi
cmp esi, edi
jle 0x4c5140
mov eax, dword [esp + 0x28]
cmp edi, eax
je 0x4c2df0
cmp dword [esp + 0x2c], 0
je 0x4c8670
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.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov esi, edi
cmp esi, dword [esp + 0x28]
jge case.default.0x4c471c
mov ecx, dword [esp + 0x174]
cmp ebx, dword [ecx + 0x7c]
jae 0x4c89aa
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c523f
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.004cc130
add esp, 4
test eax, eax
je case.default.0x4c471c
mov eax, dword [esp + 0x17c]
inc edi
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov ecx, ebx
mov esi, edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
test eax, eax
je 0x4c51f5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ax, word [esi + 2]
add esi, 2
mov ecx, 0xfc00
mov dword [esp + 0x14], esi
and ax, cx
xor edx, edx
mov ecx, 0xd800
cmp ax, cx
mov ecx, dword [ebp + 0x7c]
mov eax, ecx
sete dl
sub eax, ebx
inc edx
sar eax, 1
cmp edx, eax
jg 0x4c87ae
nop
mov eax, dword [esp + 0x14]
add esi, 2
dec edx
mov dword [esp + 0x14], esi
movzx ecx, word [eax]
mov ax, word [ebx]
add ebx, 2
mov dword [esp + 0x18], ebx
cmp cx, ax
jne case.default.0x4c471c
test edx, edx
jg 0x4c52d0
jmp 0x4c2dfe
cmp ebx, dword [ebp + 0x7c]
jae 0x4c837e
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 0x4c5340
movzx eax, word [esi]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov edi, 4
add edx, 0x10000
jmp 0x4c5345
mov edi, 2
movzx eax, word [ebx]
cmp edx, 0x80
jae 0x4c5385
mov edi, 0xff
mov ecx, eax
cmp ax, di
ja 0x4c5363
mov eax, dword [ebp + 0x34]
movzx ecx, byte [ecx + eax]
mov eax, dword [ebp + 0x34]
movzx eax, byte [edx + eax]
cmp eax, ecx
jne case.default.0x4c471c
mov edi, dword [esp + 0x170]
add ebx, 2
mov dword [esp + 0x18], ebx
jmp 0x4c2e02
mov esi, eax
add ebx, 2
and eax, 0xfc00
mov dword [esp + 0x18], ebx
cmp eax, 0xd800
jne 0x4c53ba
movzx eax, word [ebx]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
add ebx, 2
or esi, eax
mov dword [esp + 0x18], ebx
add esi, 0x10000
lea eax, [edi + ecx]
mov edi, dword [esp + 0x170]
mov dword [esp + 0x14], eax
cmp edx, esi
je 0x4c2dfe
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4e1180]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d47a0]
mov eax, dword [eax*8 + 0x4e00a4]
add eax, edx
cmp esi, eax
jne case.default.0x4c471c
jmp 0x4c2dfe
movzx edi, word [esi + 2]
add esi, 4
mov ebp, edi
jmp 0x4c54bb
mov dword [esp + 0x28], 1
movzx edi, word [esi + 2]
xor ebp, ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x1c], edi
cmp ecx, 0x28
je 0x4c5436
mov dword [esp + 0x2c], ebp
cmp ecx, 0x35
jne 0x4c543e
mov dword [esp + 0x2c], 1
add esi, 4
jmp 0x4c54c3
xor ebp, ebp
mov dword [esp + 0x28], 1
mov edi, closesocket
add esi, 2
jmp 0x4c54bb
mov dword [esp + 0x28], 1
mov ebp, 1
mov edi, closesocket
add esi, 2
jmp 0x4c54bb
xor ebp, ebp
mov dword [esp + 0x28], 1
add esi, 2
lea edi, [ebp + 1]
jmp 0x4c54bb
cmp edx, 0x2e
mov ecx, edx
sbb eax, eax
add esi, 2
and eax, 0xfffffff3
add eax, 0x2e
sub ecx, eax
mov eax, ecx
mov dword [esp + 0x2c], ecx
and dword [esp + 0x2c], 1
movsx edi, byte [eax + 0x4d4350]
movsx ebp, byte [eax + 0x4d4358]
test edi, edi
mov eax, closesocket
cmove edi, eax
mov dword [esp + 0x24], ebp
mov dword [esp + 0x1c], edi
mov ecx, esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x30], esi
movzx esi, word [esi]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c58ad
mov eax, ecx
and esi, 0x3ff
shl esi, 0xa
movzx edx, word [eax + 2]
lea eax, [ecx + 4]
and edx, 0x3ff
mov dword [esp + 0x14], eax
or edx, esi
mov esi, 2
add edx, 0x10000
mov dword [esp + 0x3c], esi
cmp dword [esp + 0x20], 0x2e
jb 0x4c5552
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4e1180]
mov eax, edx
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4d47a0]
mov ecx, dword [eax*8 + 0x4e00a4]
add ecx, edx
cmp ecx, edx
je 0x4c5552
lea edx, [esp + 0x74]
call fcn.004cbf20
mov edi, eax
mov dword [esp + 0x38], eax
jmp 0x4c5558
xor edi, edi
mov dword [esp + 0x38], edi
mov ebp, 1
cmp dword [esp + 0x24], ebp
jl 0x4c5694
mov eax, dword [esp + 0x174]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x14], edx
mov ecx, dword [eax + 0x7c]
mov dword [esp + 0x20], ecx
lea eax, [ecx - 4]
mov dword [esp + 0x44], eax
jmp 0x4c5594
mov edi, dword [esp + 0x38]
cmp ebx, eax
ja 0x4c55f4
mov edx, dword [esp + 0x30]
add esi, esi
mov ecx, ebx
sub esi, 4
jb 0x4c55b6
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4c55bb
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4c55a5
cmp esi, 0xfffffffc
je 0x4c55e8
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4c55f0
cmp esi, 0xfffffffd
je 0x4c55e8
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4c55f0
cmp esi, 0xfffffffe
je 0x4c55e8
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4c55f0
cmp esi, 0xffffffff
je 0x4c55e8
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4c55f0
add ebx, 4
jmp 0x4c5675
mov ecx, dword [esp + 0x20]
test edi, edi
jle 0x4c87c9
add edi, edi
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x4c87c9
mov esi, dword [esp + 0x38]
lea edx, [esp + 0x74]
add esi, esi
mov ecx, ebx
sub esi, 4
jb 0x4c5631
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4c5636
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4c5620
cmp esi, 0xfffffffc
je 0x4c5673
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4c87c9
cmp esi, 0xfffffffd
je 0x4c5673
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4c87c9
cmp esi, 0xfffffffe
je 0x4c5673
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4c87c9
cmp esi, 0xffffffff
je 0x4c5673
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4c87c9
add ebx, edi
mov edi, dword [esp + 0x24]
inc ebp
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x18], ebx
cmp ebp, edi
jle 0x4c5590
jmp 0x4c5698
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
cmp edi, eax
je 0x4c2df0
cmp dword [esp + 0x2c], 0
jne 0x4c87ff
mov ebp, ebx
mov dword [esp + 0x2c], ebp
cmp edi, eax
jge 0x4c57cf
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x7c]
mov dword [esp + 0x20], eax
lea ebp, [eax - 4]
nop
cmp ebx, ebp
ja 0x4c5730
mov edx, dword [esp + 0x30]
add esi, esi
mov ecx, ebx
sub esi, 4
jb 0x4c56f2
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4c56f7
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4c56e1
cmp esi, 0xfffffffc
je 0x4c5724
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4c572c
cmp esi, 0xfffffffd
je 0x4c5724
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4c572c
cmp esi, 0xfffffffe
je 0x4c5724
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4c572c
cmp esi, 0xffffffff
je 0x4c5724
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4c572c
add ebx, 4
jmp 0x4c57b0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
test ecx, ecx
jle 0x4c5876
lea edi, [ecx + ecx]
sub eax, edi
cmp ebx, eax
ja 0x4c5876
lea esi, [ecx + ecx]
mov ecx, ebx
lea edx, [esp + 0x74]
sub esi, 4
jb 0x4c5768
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4c576d
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4c5757
cmp esi, 0xfffffffc
je 0x4c57aa
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4c5876
cmp esi, 0xfffffffd
je 0x4c57aa
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4c5876
cmp esi, 0xfffffffe
je 0x4c57aa
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4c5876
cmp esi, 0xffffffff
je 0x4c57aa
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4c5876
add ebx, edi
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
inc edi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], edi
cmp edi, dword [esp + 0x1c]
jl 0x4c56d0
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x174]
cmp dword [esp + 0x28], 0
jne 0x4c2df0
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.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
cmp ebx, ebp
je case.default.0x4c471c
mov ax, word [ebx - 2]
add ebx, 0xfffffffe
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4c583c
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.004c2d00
add esp, 0x14
test eax, eax
je 0x4c5818
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 0x4c58a4
cmp ebx, dword [esi + 0x7c]
jb 0x4c58a4
cmp ebx, dword [esi + 0x88]
jbe 0x4c58a4
mov dword [esi + 0x64], 1
cmp eax, 1
jg 0x4c9de5
mov ebp, dword [esp + 0x2c]
jmp 0x4c57d6
add ecx, 2
mov dword [esp + 0x14], ecx
cmp edx, 0x2e
jb 0x4c59d7
cmp esi, 0x7f
jbe 0x4c58eb
mov eax, esi
shr eax, 7
movzx ecx, byte [eax + 0x4e1180]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d47a0]
mov ebp, dword [eax*8 + 0x4e00a4]
add ebp, esi
jmp 0x4c58f9
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x38]
movzx ebp, byte [eax + esi]
mov edx, dword [esp + 0x24]
mov ecx, 1
cmp edx, ecx
jl 0x4c5945
mov eax, dword [esp + 0x174]
mov edx, dword [eax + 0x7c]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
cmp ebx, edx
jae 0x4c89a3
movzx eax, word [ebx]
cmp esi, eax
je 0x4c592f
cmp ebp, eax
jne case.default.0x4c471c
mov eax, dword [esp + 0x14]
add ebx, 2
inc ecx
mov dword [esp + 0x18], ebx
cmp ecx, dword [esp + 0x24]
jle 0x4c5914
mov edx, dword [esp + 0x24]
cmp edx, edi
mov edi, dword [esp + 0x170]
je 0x4c2df7
cmp dword [esp + 0x2c], 0
jne 0x4c8a17
mov edi, ebx
cmp edx, dword [esp + 0x1c]
jge 0x4c598e
mov eax, dword [esp + 0x174]
mov ecx, dword [eax + 0x7c]
cmp ebx, ecx
jae 0x4c59ac
movzx eax, word [ebx]
cmp esi, eax
je 0x4c5980
cmp ebp, eax
jne 0x4c598e
add ebx, 2
inc edx
mov dword [esp + 0x18], ebx
cmp edx, dword [esp + 0x1c]
jl 0x4c5971
mov ebp, dword [esp + 0x174]
cmp dword [esp + 0x28], 0
je 0x4c89bd
mov edi, dword [esp + 0x170]
jmp 0x4c2dfe
mov ebp, dword [esp + 0x174]
mov eax, dword [ebp + 0x8c]
test eax, eax
je 0x4c5995
cmp ebx, dword [ebp + 0x88]
jbe 0x4c5995
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4c9de5
jmp 0x4c5995
mov edi, dword [esp + 0x174]
cmp ebp, 1
jl 0x4c5a13
mov edx, dword [edi + 0x7c]
mov ecx, 1
nop dword [eax + eax]
cmp ebx, edx
jae 0x4c8af3
movzx eax, word [ebx]
add ebx, 2
mov dword [esp + 0x18], ebx
cmp esi, eax
jne case.default.0x4c471c
inc ecx
cmp ecx, ebp
jle 0x4c59f0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
cmp ebp, edx
je 0x4c2df0
cmp dword [esp + 0x2c], 0
jne 0x4c8b68
mov edi, ebx
cmp ebp, edx
jge 0x4c5a57
mov eax, dword [esp + 0x174]
mov ecx, dword [eax + 0x7c]
nop word [eax + eax]
cmp ebx, ecx
jae 0x4c5a75
movzx eax, word [ebx]
cmp esi, eax
jne 0x4c5a57
add ebx, 2
inc ebp
mov dword [esp + 0x18], ebx
cmp ebp, edx
jl 0x4c5a40
mov ebp, dword [esp + 0x174]
cmp dword [esp + 0x28], 0
je 0x4c8b19
mov edi, dword [esp + 0x170]
jmp 0x4c2dfe
mov ebp, dword [esp + 0x174]
mov eax, dword [ebp + 0x8c]
test eax, eax
je 0x4c5a5e
cmp ebx, dword [ebp + 0x88]
jbe 0x4c5a5e
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4c9de5
jmp 0x4c5a5e
cmp ebx, dword [ebp + 0x7c]
jae 0x4c837e
lea ecx, [esi + 2]
movzx esi, word [ebx]
mov eax, esi
add ebx, 2
and eax, 0xfc00
mov dword [esp + 0x18], ebx
cmp eax, 0xd800
jne 0x4c5ae4
movzx eax, word [ebx]
and esi, 0x3ff
shl esi, 0xa
and eax, 0x3ff
or esi, eax
add esi, 0x10000
add ebx, 2
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x20], 0x20
lea eax, [ecx + 2]
movzx edx, word [ecx]
mov dword [esp + 0x14], eax
jne 0x4c5b3f
cmp edx, 0x7f
jbe 0x4c5b23
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4e1180]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d47a0]
mov eax, dword [eax*8 + 0x4e00a4]
add eax, edx
jmp 0x4c5b2a
mov eax, dword [ebp + 0x38]
movzx eax, byte [eax + edx]
cmp edx, esi
je case.default.0x4c471c
cmp eax, esi
je case.default.0x4c471c
jmp 0x4c2dfe
mov dword [esp + 0x14], eax
cmp edx, esi
je case.default.0x4c471c
jmp 0x4c2dfe
movzx eax, word [esi + 2]
lea ecx, [esi + 4]
mov dword [esp + 0x20], eax
mov edi, eax
jmp 0x4c5c17
movzx eax, word [esi + 2]
xor edi, edi
mov dword [esp + 0x20], eax
cmp ecx, 0x42
je 0x4c5b7a
mov dword [esp + 0x2c], edi
cmp ecx, 0x4f
jne 0x4c5b82
mov dword [esp + 0x2c], 1
lea ecx, [esi + 4]
jmp 0x4c5c17
mov dword [esp + 0x28], 1
lea ecx, [esi + 2]
xor edi, edi
jmp 0x4c5c0f
mov dword [esp + 0x28], 1
lea ecx, [esi + 2]
mov edi, 1
jmp 0x4c5c0f
mov dword [esp + 0x28], 1
lea ecx, [esi + 2]
xor edi, edi
mov dword [esp + 0x20], 1
jmp 0x4c5c17
movzx eax, word [esi + 2]
lea ecx, [esi + 4]
mov dword [esp + 0x28], 1
xor edi, edi
mov dword [esp + 0x20], eax
jmp 0x4c5c17
cmp edx, 0x48
mov ecx, edx
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x48
sub ecx, eax
mov eax, ecx
mov dword [esp + 0x2c], ecx
and dword [esp + 0x2c], 1
lea ecx, [esi + 2]
movsx edi, byte [eax + 0x4d4358]
movsx eax, byte [eax + 0x4d4350]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4c5c17
mov dword [esp + 0x20], closesocket
movzx ebp, word [ecx]
lea esi, [ecx + 2]
cmp edx, 0x48
mov dword [esp + 0x38], ebp
mov dword [esp + 0x14], esi
mov edx, 1
jb 0x4c5db1
cmp ebp, 0x7f
jbe 0x4c5c6a
mov eax, ebp
shr eax, 7
movzx ecx, byte [eax + 0x4e1180]
mov eax, ebp
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4d47a0]
mov ecx, dword [esp + 0x174]
mov ebp, dword [eax*8 + 0x4e00a4]
add ebp, dword [esp + 0x38]
jmp 0x4c5c78
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x38]
movzx ebp, byte [eax + ebp]
mov dword [esp + 0x30], ebp
cmp edi, 1
jl 0x4c5cdf
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x4c89a3
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c5cc4
movzx eax, word [ebx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
add ebx, 2
or ecx, eax
mov dword [esp + 0x18], ebx
add ecx, 0x10000
cmp dword [esp + 0x38], ecx
je case.default.0x4c471c
cmp ebp, ecx
je case.default.0x4c471c
inc edx
cmp edx, edi
jle 0x4c5c84
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
cmp edi, eax
je 0x4c2f5c
cmp dword [esp + 0x2c], 0
jne 0x4c8c8f
mov ecx, dword [esp + 0x174]
mov ebp, ebx
cmp edi, eax
jge 0x4c5d64
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x4c5d86
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c5d43
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 + 0x38], ecx
je 0x4c5d5d
cmp dword [esp + 0x30], ecx
je 0x4c5d5d
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x20]
jl 0x4c5d06
mov ecx, dword [esp + 0x174]
cmp dword [esp + 0x28], 0
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x170]
je 0x4c8c02
mov ebp, dword [esp + 0x174]
jmp 0x4c2e02
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x4c5d64
cmp ebx, dword [ecx + 0x88]
jbe 0x4c5d64
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x4c9de5
jmp 0x4c5d64
cmp edi, 1
jl 0x4c5e11
mov ecx, dword [esp + 0x174]
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x4c89a3
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c5e00
movzx eax, word [ebx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
add ebx, 2
or ecx, eax
mov dword [esp + 0x18], ebx
add ecx, 0x10000
cmp ebp, ecx
je case.default.0x4c471c
inc edx
cmp edx, edi
jle 0x4c5dc0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
cmp edi, eax
je 0x4c2f5c
cmp dword [esp + 0x2c], 0
jne 0x4c8dff
mov ecx, dword [esp + 0x174]
mov ebp, ebx
cmp edi, eax
jge 0x4c5e90
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x4c5eb2
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c5e75
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 + 0x38], ecx
je 0x4c5e89
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x20]
jl 0x4c5e38
mov ecx, dword [esp + 0x174]
cmp dword [esp + 0x28], 0
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x170]
je 0x4c8d6f
mov ebp, dword [esp + 0x174]
jmp 0x4c2e02
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x4c5e90
cmp ebx, dword [ecx + 0x88]
jbe 0x4c5e90
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x4c9de5
jmp 0x4c5e90
movzx eax, word [esi + 2]
lea ecx, [esi + 4]
mov edi, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x2c], 1
jmp 0x4c5fb0
movzx eax, word [esi + 2]
xor edi, edi
mov dword [esp + 0x24], eax
xor eax, eax
cmp ecx, 0x5c
mov dword [esp + 0x20], edi
lea ecx, [esi + 4]
sete al
mov dword [esp + 0x2c], eax
jmp 0x4c5fb0
xor edi, edi
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], edi
lea ecx, [esi + 2]
jmp 0x4c5fa8
mov edi, 1
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], edi
lea ecx, [esi + 2]
jmp 0x4c5fa8
xor edi, edi
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], edi
lea ecx, [esi + 2]
mov dword [esp + 0x24], 1
jmp 0x4c5fb0
movzx eax, word [esi + 2]
lea ecx, [esi + 4]
xor edi, edi
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], eax
jmp 0x4c5fb0
add edx, 0xffffffab
lea ecx, [esi + 2]
mov eax, edx
and edx, 1
mov dword [esp + 0x2c], edx
movsx edi, byte [eax + 0x4d4358]
movsx eax, byte [eax + 0x4d4350]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], eax
test eax, eax
jne 0x4c5fb0
mov dword [esp + 0x24], closesocket
movzx eax, word [ecx]
mov edx, eax
mov esi, eax
mov dword [esp + 0x1c], esi
lea eax, [ecx + 2]
mov dword [esp + 0x14], eax
cmp edx, 0x10
je 0x4c5fd1
cmp edx, 0xf
je 0x4c5fd1
or eax, 0xffffffff
jmp 0x4c5ff8
movzx ebp, word [eax + 2]
xor ecx, ecx
cmp edx, 0xf
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x174]
sete cl
mov dword [esp + 0x34], ecx
movzx ecx, word [eax]
add eax, 4
mov dword [esp + 0x14], eax
mov eax, ecx
mov dword [esp + 0x30], eax
test edi, edi
jle 0x4c6c4f
test eax, eax
js 0x4c6558
cmp eax, 8
ja case.default.0x4c4a56
jmp dword [eax*4 + 0x4ca644]
cmp dword [esp + 0x34], 0
jne case.default.0x4c471c
mov esi, dword [ebp + 0x7c]
mov edx, 1
nop
mov ecx, ebx
cmp ebx, esi
jae 0x4c837e
mov ax, word [ebx]
mov ebx, 0xfc00
and ax, bx
xor ebx, ebx
cmp ax, word [esp + 0x54]
sete bl
inc edx
lea ebx, [ebx*2 + 2]
add ebx, ecx
cmp edx, edi
jle 0x4c6030
mov dword [esp + 0x18], ebx
jmp 0x4c6c4b
mov esi, dword [ebp + 0x7c]
mov edx, 1
nop
cmp ebx, esi
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c60a8
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 + 0x4e1180]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d47a0]
mov al, byte [eax*8 + 0x4e00a1]
cmp al, 9
je 0x4c60db
cmp al, 5
je 0x4c60db
cmp al, 8
je 0x4c60db
xor eax, eax
jmp 0x4c60e0
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.default.0x4c471c
inc edx
cmp edx, edi
jle 0x4c6070
mov dword [esp + 0x18], ebx
jmp 0x4c6c4b
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6138
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
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 + 0x4e1180]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
cmp dword [eax*4 + 0x4e3760], ebp
mov ebp, dword [esp + 0x174]
sete cl
cmp ecx, dword [esp + 0x34]
je case.default.0x4c471c
inc edx
cmp edx, edi
jle 0x4c6100
mov dword [esp + 0x18], ebx
jmp 0x4c6c4b
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c61cf
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ebx, 2
add ecx, 0x10000
mov eax, ecx
mov ebp, dword [esp + 0x174]
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x4e1180]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
cmp eax, dword [esp + 0x40]
sete cl
cmp ecx, dword [esp + 0x34]
je case.default.0x4c471c
inc edx
cmp edx, edi
jle 0x4c6197
mov dword [esp + 0x18], ebx
jmp 0x4c6c4b
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c625b
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 + 0x4e1180]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a0]
cmp eax, dword [esp + 0x40]
sete cl
cmp ecx, dword [esp + 0x34]
je case.default.0x4c471c
inc edx
cmp edx, edi
jle 0x4c6223
mov dword [esp + 0x18], ebx
jmp 0x4c6c4b
mov esi, dword [ebp + 0x7c]
mov edx, 1
nop
cmp ebx, esi
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c62e8
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 + 0x4e1180]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
mov eax, dword [eax*4 + 0x4e3760]
cmp eax, 1
je 0x4c6321
cmp eax, 3
je 0x4c6321
xor eax, eax
jmp 0x4c6326
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.default.0x4c471c
inc edx
cmp edx, edi
jle 0x4c62b0
mov dword [esp + 0x18], ebx
jmp 0x4c6c4b
mov edi, dword [ebp + 0x7c]
mov esi, 1
mov ebp, dword [esp + 0x20]
nop
cmp ebx, edi
jae 0x4c89a3
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6388
movzx eax, word [ebx]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add ebx, 2
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4e1180]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
cmp dword [eax*4 + 0x4e3760], 6
je 0x4c63d0
cmp edx, 9
je 0x4c63d0
cmp edx, 0xa
je 0x4c63d0
cmp edx, 0xc
je 0x4c63d0
cmp edx, 0xd
je 0x4c63d0
xor eax, eax
jmp 0x4c63d5
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.default.0x4c471c
inc esi
cmp esi, ebp
jle 0x4c6350
mov edi, dword [esp + 0x20]
mov dword [esp + 0x18], ebx
jmp 0x4c6c4b
mov edi, dword [ebp + 0x7c]
mov esi, 1
mov ebp, dword [esp + 0x20]
cmp ebx, edi
jae 0x4c89a3
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6439
movzx eax, word [ebx]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add ebx, 2
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4e1180]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
cmp dword [eax*4 + 0x4e3760], 6
je 0x4c6486
cmp edx, 9
je 0x4c6486
cmp edx, 0xa
je 0x4c6486
cmp edx, 0xb
je 0x4c6486
cmp edx, 0xc
je 0x4c6486
cmp edx, 0xd
je 0x4c6486
xor eax, eax
jmp 0x4c648b
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.default.0x4c471c
inc esi
cmp esi, ebp
jle 0x4c6401
mov edi, dword [esp + 0x20]
mov dword [esp + 0x18], ebx
jmp 0x4c6c4b
mov edi, dword [ebp + 0x7c]
mov esi, 1
mov ebp, dword [esp + 0x20]
cmp ebx, edi
jae 0x4c89a3
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c64f7
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
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4e1180]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
mov eax, dword [eax*4 + 0x4e3760]
cmp eax, 1
je 0x4c6537
cmp eax, 3
je 0x4c6537
cmp edx, 0x5f
je 0x4c6537
xor eax, eax
jmp 0x4c653c
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.default.0x4c471c
inc esi
cmp esi, ebp
jle 0x4c64b7
mov edi, dword [esp + 0x20]
jmp 0x4c6c4b
cmp edx, 0x16
jne 0x4c6667
mov ebp, dword [ebp + 0x7c]
lea edi, [edx - 0x15]
cmp ebx, ebp
jae 0x4c89a3
movzx ecx, word [ebx]
lea edx, [ebx + 2]
mov eax, ecx
mov ebx, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c65a1
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4e1180]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
cmp dword [eax*4 + 0x4e3760], 2
je case.default.0x4c471c
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x4c664f
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c661a
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 + 0x4e1180]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
cmp dword [eax*4 + 0x4e3760], 2
jne 0x4c664f
lea ebx, [ebx + edx*2]
cmp ebx, esi
jb 0x4c65e5
inc edi
cmp edi, dword [esp + 0x20]
jle 0x4c6567
mov edi, dword [esp + 0x20]
mov dword [esp + 0x18], ebx
jmp 0x4c6c4b
lea eax, [esi - 6]
cmp eax, 0xf
ja case.default.0x4c4a56
jmp dword [eax*4 + 0x4ca668]
mov esi, 1
nop
mov ecx, dword [ebp + 0x7c]
cmp ebx, ecx
jae 0x4c837e
mov edx, dword [ebp + 0x18]
lea eax, [ebp + 0x1c]
test edx, edx
je 0x4c66ad
push 1
push eax
push ecx
mov ecx, ebx
call fcn.004cbf80
add esp, 0xc
test eax, eax
jne case.default.0x4c471c
jmp 0x4c66d8
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja 0x4c66d8
mov ax, word [ebx]
cmp ax, word [ebp + 0x2c]
jne 0x4c66d8
cmp edx, 1
je case.default.0x4c471c
mov ax, word [ebx + 2]
cmp ax, word [ebp + 0x2e]
je case.default.0x4c471c
add ebx, 2
cmp ebx, dword [ebp + 0x7c]
jae 0x4c66f8
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4c66f8
add ebx, 2
inc esi
cmp esi, edi
jle 0x4c6680
mov dword [esp + 0x18], ebx
jmp 0x4c6c4b
mov edx, dword [ebp + 0x7c]
mov ecx, 1
nop
cmp ebx, edx
jae 0x4c837e
add ebx, 2
cmp ebx, edx
jae 0x4c6731
mov ax, word [ebx]
and ax, word [esp + 0x48]
cmp ax, word [esp + 0x4c]
jne 0x4c6731
add ebx, 2
inc ecx
cmp ecx, edi
jle 0x4c6710
mov dword [esp + 0x18], ebx
jmp 0x4c6c4f
mov eax, dword [ebp + 0x7c]
lea ecx, [edi + edi]
sub eax, ecx
cmp ebx, eax
ja case.default.0x4c471c
add ebx, ecx
mov dword [esp + 0x18], ebx
jmp 0x4c6c4f
mov edi, dword [ebp + 0x7c]
mov esi, 1
cmp ebx, edi
jae 0x4c837e
movzx ecx, word [ebx]
lea edx, [ebx + 2]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c679a
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 0x4c67cc
je case.0x4c67b0.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4c471c
jmp dword [ecx*4 + 0x4ca6a8]
mov ebx, edx
cmp edx, edi
jae 0x4c67e9
cmp word [edx], 0xa
jne 0x4c67e9
lea ebx, [edx + 2]
jmp 0x4c67e9
mov ebx, edx
jmp 0x4c67e9
sub ecx, 0x2028
je case.0x4c67b0.11
sub ecx, 1
jne case.default.0x4c471c
cmp dword [ebp + 0x68], 0
mov ebx, edx
jne case.default.0x4c471c
inc esi
cmp esi, dword [esp + 0x20]
jle 0x4c6762
mov edi, dword [esp + 0x20]
mov dword [esp + 0x18], ebx
jmp 0x4c6c4b
mov esi, dword [ebp + 0x7c]
mov edx, 1
nop dword [eax]
cmp ebx, esi
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6848
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 0x4c689e
je case.default.0x4c471c
cmp ecx, 0xa0
ja 0x4c6884
je case.default.0x4c471c
cmp ecx, 9
je case.default.0x4c471c
cmp ecx, 0x20
je case.default.0x4c471c
inc edx
cmp edx, edi
jle 0x4c6810
mov dword [esp + 0x18], ebx
jmp 0x4c6c4b
cmp ecx, 0x1680
je case.default.0x4c471c
cmp ecx, 0x180e
je case.default.0x4c471c
jmp case.0x4c68be.8203
cmp ecx, 0x3000
ja case.0x4c68be.8203
je case.default.0x4c471c
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4c68be.8203
movzx eax, byte [ecx + 0x4ca6c0]
jmp dword [eax*4 + 0x4ca6b8]
mov esi, dword [ebp + 0x7c]
mov edx, 1
nop dword [eax]
cmp ebx, esi
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6908
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 0x4c694e
je case.0x4c6972.8193
cmp ecx, 0xa0
ja 0x4c6938
je case.0x4c6972.8193
cmp ecx, 9
je case.0x4c6972.8193
cmp ecx, 0x20
jne case.default.0x4c471c
inc edx
cmp edx, edi
jle 0x4c68d0
mov dword [esp + 0x18], ebx
jmp 0x4c6c4b
cmp ecx, 0x1680
je case.0x4c6972.8193
cmp ecx, 0x180e
jne case.default.0x4c471c
jmp case.0x4c6972.8193
cmp ecx, 0x3000
ja case.default.0x4c471c
je case.0x4c6972.8193
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x4c471c
movzx eax, byte [ecx + 0x4ca728]
jmp dword [eax*4 + 0x4ca720]
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c69b9
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 0x4c69d6
je case.default.0x4c471c
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4c69cf
jmp dword [ecx*4 + 0x4ca788]
sub ecx, 0x2028
je case.default.0x4c471c
sub ecx, 1
je case.default.0x4c471c
inc edx
cmp edx, edi
jle 0x4c6981
mov dword [esp + 0x18], ebx
jmp 0x4c6c4b
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6a39
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 0x4c6a56
je case.0x4c6a4f.10
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4c471c
jmp dword [ecx*4 + 0x4ca798]
sub ecx, 0x2028
je case.0x4c6a4f.10
sub ecx, 1
jne case.default.0x4c471c
inc edx
cmp edx, edi
jle 0x4c6a01
mov dword [esp + 0x18], ebx
jmp 0x4c6c4b
mov esi, dword [ebp + 0x7c]
mov edx, 1
nop dword [eax]
cmp ebx, esi
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6ab8
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 0x4c6acd
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 4
jne case.default.0x4c471c
inc edx
cmp edx, edi
jle 0x4c6a80
mov dword [esp + 0x18], ebx
jmp 0x4c6c4b
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c837e
movzx eax, word [ebx]
mov ecx, 0x80
cmp ax, cx
jae case.default.0x4c471c
mov ecx, eax
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 4
je case.default.0x4c471c
inc edx
add ebx, 2
cmp edx, edi
jle 0x4c6ae3
mov dword [esp + 0x18], ebx
jmp 0x4c6c4b
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c837e
movzx eax, word [ebx]
mov ecx, 0x80
cmp ax, cx
jae 0x4c6b48
mov ecx, eax
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 1
jne case.default.0x4c471c
add ebx, 2
cmp ebx, esi
jae 0x4c6b67
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4c6b67
add ebx, 2
inc edx
cmp edx, edi
jle 0x4c6b24
mov dword [esp + 0x18], ebx
jmp 0x4c6c4b
mov esi, dword [ebp + 0x7c]
mov edx, 1
nop dword [eax]
cmp ebx, esi
jae 0x4c837e
movzx eax, word [ebx]
mov ecx, 0x80
cmp ax, cx
jae case.default.0x4c471c
mov ecx, eax
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 1
je case.default.0x4c471c
inc edx
add ebx, 2
cmp edx, edi
jle 0x4c6b80
mov dword [esp + 0x18], ebx
jmp 0x4c6c4b
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c837e
movzx eax, word [ebx]
mov ecx, 0x80
cmp ax, cx
jae 0x4c6be5
mov ecx, eax
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
jne case.default.0x4c471c
add ebx, 2
cmp ebx, esi
jae 0x4c6c04
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4c6c04
add ebx, 2
inc edx
cmp edx, edi
jle 0x4c6bc1
mov dword [esp + 0x18], ebx
jmp 0x4c6c4b
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c837e
movzx eax, word [ebx]
mov ecx, 0x80
cmp ax, cx
jae case.default.0x4c471c
mov ecx, eax
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
je case.default.0x4c471c
add ebx, 2
inc edx
mov dword [esp + 0x18], ebx
cmp edx, edi
jle 0x4c6c17
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
cmp edi, edx
je 0x4c2df0
cmp dword [esp + 0x2c], 0
mov eax, dword [esp + 0x30]
jne 0x4c8f9f
mov ebp, ebx
mov dword [esp + 0x44], ebp
test eax, eax
js 0x4c731b
cmp eax, 8
ja case.default.0x4c4a56
jmp dword [eax*4 + 0x4ca7a8]
mov ecx, dword [esp + 0x174]
cmp edi, edx
jge 0x4c72f9
mov edx, dword [ecx + 0x7c]
mov esi, 0xd800
nop
cmp ebx, edx
jae 0x4c6cdb
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
cmp dword [esp + 0x34], 0
movzx ecx, ax
jne 0x4c72f2
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 0x4c6ca0
jmp 0x4c72f2
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x4c72f9
cmp ebx, dword [ecx + 0x88]
jbe 0x4c72f9
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x4c9de5
jmp 0x4c72f9
cmp edi, edx
jge 0x4c72f2
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c6db9
movzx ecx, word [ebx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6d60
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 + 0x4e1180]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d47a0]
mov al, byte [eax*8 + 0x4e00a1]
cmp al, 9
je 0x4c6d93
cmp al, 5
je 0x4c6d93
cmp al, 8
je 0x4c6d93
xor eax, eax
jmp 0x4c6d98
mov eax, 1
cmp eax, dword [esp + 0x34]
je 0x4c72f2
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c6d23
jmp 0x4c72f2
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x4c72f9
cmp ebx, dword [ecx + 0x88]
jbe 0x4c72f9
mov dword [ecx + 0x64], edx
cmp eax, 1
jg 0x4c9de5
jmp 0x4c72f9
cmp edi, edx
jge 0x4c72f2
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
nop dword [eax]
cmp ebx, esi
jae 0x4c6cdb
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6e3d
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 + 0x4e1180]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
cmp dword [eax*4 + 0x4e3760], ebp
mov ebp, dword [esp + 0x44]
sete cl
cmp ecx, dword [esp + 0x34]
je 0x4c72f2
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c6e00
jmp 0x4c72f2
cmp edi, edx
jge 0x4c72f2
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x4c6cdb
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6ee5
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 + 0x4e1180]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
cmp eax, dword [esp + 0x40]
sete cl
cmp ecx, dword [esp + 0x34]
je 0x4c72f2
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c6ea8
jmp 0x4c72f2
cmp edi, edx
jge 0x4c72f2
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x4c6cdb
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6f82
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 + 0x4e1180]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a0]
cmp eax, dword [esp + 0x40]
sete cl
cmp ecx, dword [esp + 0x34]
je 0x4c72f2
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c6f45
jmp 0x4c72f2
cmp edi, edx
jge 0x4c72f2
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c6db9
movzx ecx, word [ebx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c701f
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 + 0x4e1180]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
mov eax, dword [eax*4 + 0x4e3760]
cmp eax, 1
je 0x4c7058
cmp eax, 3
je 0x4c7058
xor eax, eax
jmp 0x4c705d
mov eax, 1
cmp eax, dword [esp + 0x34]
je 0x4c72f2
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c6fe2
jmp 0x4c72f2
cmp edi, edx
jge 0x4c72f2
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
mov esi, 1
cmp ebx, edi
jae 0x4c7143
movzx edx, word [ebx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c70cd
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 + 0x4e1180]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
cmp dword [eax*4 + 0x4e3760], 6
je 0x4c7115
cmp edx, 9
je 0x4c7115
cmp edx, 0xa
je 0x4c7115
cmp edx, 0xc
je 0x4c7115
cmp edx, 0xd
je 0x4c7115
xor eax, eax
jmp 0x4c711a
mov eax, 1
cmp eax, dword [esp + 0x34]
je 0x4c72f2
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 0x4c7090
jmp 0x4c72f2
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x4c72f9
cmp ebx, dword [ecx + 0x88]
jbe 0x4c72f9
mov dword [ecx + 0x64], esi
cmp eax, 1
jg 0x4c9de5
jmp 0x4c72f9
cmp edi, edx
jge 0x4c72f2
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
mov esi, 1
cmp ebx, edi
jae 0x4c7143
movzx edx, word [ebx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c71c0
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 + 0x4e1180]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
cmp dword [eax*4 + 0x4e3760], 6
je 0x4c720d
cmp edx, 9
je 0x4c720d
cmp edx, 0xa
je 0x4c720d
cmp edx, 0xb
je 0x4c720d
cmp edx, 0xc
je 0x4c720d
cmp edx, 0xd
je 0x4c720d
xor eax, eax
jmp 0x4c7212
mov eax, 1
cmp eax, dword [esp + 0x34]
je 0x4c72f2
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 0x4c7187
jmp 0x4c72f2
cmp edi, edx
jge 0x4c72f2
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
nop dword [eax]
mov esi, 1
cmp ebx, edi
jae 0x4c7143
movzx edx, word [ebx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c728d
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 + 0x4e1180]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
mov eax, dword [eax*4 + 0x4e3760]
cmp eax, 1
je 0x4c72cd
cmp eax, 3
je 0x4c72cd
cmp edx, 0x5f
je 0x4c72cd
xor eax, eax
jmp 0x4c72d2
mov eax, 1
cmp eax, dword [esp + 0x34]
je 0x4c72f2
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 0x4c7250
mov ecx, dword [esp + 0x174]
cmp dword [esp + 0x28], 0
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x170]
je 0x4c8ed5
mov ebp, dword [esp + 0x174]
jmp 0x4c2e02
cmp esi, 0x16
jne 0x4c7539
mov esi, dword [esp + 0x174]
cmp edi, edx
jge 0x4c746c
mov edi, dword [esi + 0x7c]
cmp ebx, edi
jae 0x4c744a
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c7373
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 + 0x4e1180]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
cmp dword [eax*4 + 0x4e3760], 2
je 0x4c746c
mov esi, dword [esi + 0x7c]
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp ebx, esi
jae 0x4c742e
nop word [eax + eax]
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c73f5
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 + 0x4e1180]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
cmp dword [eax*4 + 0x4e3760], 2
jne 0x4c742a
lea ebx, [ebx + edx*2]
cmp ebx, esi
jb 0x4c73c0
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x174]
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0x24]
jl 0x4c7336
jmp 0x4c746c
mov eax, dword [esi + 0x8c]
test eax, eax
je 0x4c746c
cmp ebx, dword [esi + 0x88]
jbe 0x4c746c
mov dword [esi + 0x64], 1
cmp eax, 1
jg 0x4c9de5
cmp dword [esp + 0x28], 0
jne 0x4c2df0
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.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
nop
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, ebp
je case.default.0x4c471c
movzx eax, word [ebx]
mov edx, ebx
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x4c74d7
movzx ecx, word [edx - 2]
lea ebx, [edx - 2]
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c7502
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 + 0x4e1180]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
cmp dword [eax*4 + 0x4e3760], 2
jne 0x4c8f61
sub ebx, 2
jmp 0x4c74bd
lea eax, [esi - 6]
cmp eax, 0xf
ja case.default.0x4c4a56
jmp dword [eax*4 + 0x4ca7cc]
cmp edx, 0x7fffffff
jge 0x4c763b
cmp edi, edx
jge 0x4c7871
mov eax, dword [esp + 0x174]
nop word [eax + eax]
mov ecx, dword [eax + 0x7c]
cmp ebx, ecx
jae 0x4c7615
mov edx, dword [eax + 0x18]
add eax, 0x1c
test edx, edx
je 0x4c759d
push 1
push eax
push ecx
mov ecx, ebx
call fcn.004cbf80
add esp, 0xc
test eax, eax
jne 0x4c7871
jmp 0x4c75cf
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja 0x4c75cf
mov ecx, dword [esp + 0x174]
mov ax, word [ebx]
cmp ax, word [ecx + 0x2c]
jne 0x4c75cf
cmp edx, 1
je 0x4c7871
mov ax, word [ebx + 2]
cmp ax, word [ecx + 0x2e]
je 0x4c7871
mov eax, dword [esp + 0x174]
add ebx, 2
mov dword [esp + 0x18], ebx
cmp ebx, dword [eax + 0x7c]
jae 0x4c7605
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [esp + 0x174]
jne 0x4c7605
add ebx, 2
mov dword [esp + 0x18], ebx
inc edi
cmp edi, dword [esp + 0x24]
jl 0x4c7570
jmp 0x4c7871
mov eax, dword [eax + 0x8c]
test eax, eax
je 0x4c7871
mov ecx, dword [esp + 0x174]
cmp ebx, dword [ecx + 0x88]
jbe 0x4c7871
jmp 0x4c7760
mov eax, dword [esp + 0x174]
mov ecx, dword [eax + 0x7c]
cmp ebx, ecx
jae 0x4c7615
mov edx, dword [eax + 0x18]
add eax, 0x1c
test edx, edx
je 0x4c766b
push 1
push eax
push ecx
mov ecx, ebx
call fcn.004cbf80
add esp, 0xc
test eax, eax
jne 0x4c7871
jmp 0x4c769d
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja 0x4c769d
mov ecx, dword [esp + 0x174]
mov ax, word [ebx]
cmp ax, word [ecx + 0x2c]
jne 0x4c769d
cmp edx, 1
je 0x4c7871
mov ax, word [ebx + 2]
cmp ax, word [ecx + 0x2e]
je 0x4c7871
mov eax, dword [esp + 0x174]
add ebx, 2
mov dword [esp + 0x18], ebx
cmp ebx, dword [eax + 0x7c]
jae 0x4c76d3
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [esp + 0x174]
jne 0x4c76d3
add ebx, 2
mov dword [esp + 0x18], ebx
inc edi
cmp edi, dword [esp + 0x24]
jl 0x4c7642
jmp 0x4c7871
cmp edx, 0x7fffffff
jge 0x4c7738
cmp edi, edx
jge 0x4c7871
mov eax, dword [esp + 0x174]
mov ecx, dword [eax + 0x7c]
nop dword [eax]
cmp ebx, ecx
jae 0x4c772f
add ebx, 2
mov dword [esp + 0x18], ebx
cmp ebx, ecx
jae 0x4c7725
mov ax, word [ebx]
and ax, word [esp + 0x48]
cmp ax, word [esp + 0x4c]
jne 0x4c7725
add ebx, 2
mov dword [esp + 0x18], ebx
inc edi
cmp edi, edx
jl 0x4c7700
jmp 0x4c7871
mov ecx, dword [esp + 0x174]
jmp 0x4c7746
mov ecx, dword [esp + 0x174]
mov ebx, dword [ecx + 0x7c]
mov dword [esp + 0x18], ebx
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x4c7878
cmp ebx, dword [ecx + 0x88]
jbe 0x4c7878
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x4c9de5
jmp 0x4c7878
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 0x4c77a5
mov eax, dword [edi + 0x8c]
mov ebx, ecx
mov dword [esp + 0x18], ebx
test eax, eax
je 0x4c77ac
cmp ecx, dword [edi + 0x88]
mov ecx, edi
jmp 0x4c775a
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
mov ecx, edi
jmp 0x4c7878
cmp edi, edx
jge 0x4c7871
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x4c793f
movzx ecx, word [ebx]
lea edx, [ebx + 2]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c7801
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, 4
add ecx, 0x10000
jmp 0x4c7806
mov eax, 2
cmp ecx, 0xd
jne 0x4c7820
mov ebx, edx
mov dword [esp + 0x18], ebx
cmp edx, esi
jae 0x4c786d
cmp word [ebx], 0xa
jne 0x4c7862
lea ebx, [edx + 2]
jmp 0x4c785e
cmp ecx, 0xa
je 0x4c785c
mov edx, dword [esp + 0x174]
cmp dword [edx + 0x68], 0
jne 0x4c7e72
cmp ecx, 0xb
je 0x4c785c
cmp ecx, 0xc
je 0x4c785c
cmp ecx, 0x85
je 0x4c785c
cmp ecx, 0x2028
je 0x4c785c
cmp ecx, 0x2029
jne 0x4c7e72
add ebx, eax
mov dword [esp + 0x18], ebx
inc edi
cmp edi, dword [esp + 0x24]
jl 0x4c77c5
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x174]
cmp dword [esp + 0x28], 0
jne 0x4c2df0
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.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
nop word [eax + eax]
lea ecx, [ebx - 2]
cmp ebx, ebp
je case.default.0x4c471c
mov ax, word [ecx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4c78e3
add ecx, 0xfffffffe
mov ebx, ecx
cmp esi, 0x11
jne 0x4c78ff
cmp ecx, ebp
jbe 0x4c78ff
cmp word [ecx], 0xa
jne 0x4c78ff
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.004c2d00
add esp, 0x14
test eax, eax
je 0x4c78c0
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 0x4c7968
cmp ebx, dword [ecx + 0x88]
jbe 0x4c7968
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x4c9de5
mov esi, dword [esp + 0x1c]
jmp 0x4c7878
cmp edi, edx
jge 0x4c7871
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c7a53
movzx ecx, word [ebx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c79c0
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 0x4c7a29
je case.0x4c7a45.8193
cmp ecx, 0xa0
ja 0x4c7a19
je case.0x4c7a45.8193
cmp ecx, 9
je case.0x4c7a45.8193
cmp ecx, 0x20
je case.0x4c7a45.8193
xor ecx, ecx
xor eax, eax
cmp dword [esp + 0x1c], 0x12
sete al
cmp ecx, eax
je 0x4c786d
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c7983
jmp 0x4c786d
cmp ecx, 0x1680
je case.0x4c7a45.8193
cmp ecx, 0x180e
jmp 0x4c79e8
cmp ecx, 0x3000
ja case.0x4c7a45.8203
je case.0x4c7a45.8193
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4c7a45.8203
movzx eax, byte [ecx + 0x4ca814]
jmp dword [eax*4 + 0x4ca80c]
mov ecx, 1
jmp 0x4c79f0
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x4c7968
cmp ebx, dword [ecx + 0x88]
jbe 0x4c7968
mov dword [ecx + 0x64], edx
cmp eax, 1
jg 0x4c9de5
mov esi, dword [esp + 0x1c]
jmp 0x4c7878
cmp edi, edx
jge 0x4c7871
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
nop dword [eax + eax]
mov edx, 1
cmp ebx, esi
jae 0x4c7a53
movzx ecx, word [ebx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c7ad9
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 0x4c7af2
je case.0x4c7aeb.10
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4c7aeb
jmp dword [ecx*4 + 0x4ca874]
sub ecx, 0x2028
je case.0x4c7aeb.10
sub ecx, 1
je case.0x4c7aeb.10
xor ecx, ecx
jmp 0x4c7b08
mov ecx, 1
xor eax, eax
cmp dword [esp + 0x1c], 0x14
sete al
cmp ecx, eax
je 0x4c786d
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c7aa0
jmp 0x4c786d
cmp edi, edx
jge 0x4c7871
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x4c793f
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c7b80
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 0x4c7b9c
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 4
jne 0x4c786d
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c7b43
jmp 0x4c786d
cmp edi, edx
jge 0x4c7871
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x4c793f
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c7bfe
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 0x4c786d
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 4
je 0x4c786d
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c7bc1
jmp 0x4c786d
cmp edi, edx
jge 0x4c7871
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x4c793f
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c7c80
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 0x4c7c9c
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 1
jne 0x4c786d
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c7c43
jmp 0x4c786d
cmp edi, edx
jge 0x4c7871
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x4c793f
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c7cfe
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 0x4c786d
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 1
je 0x4c786d
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c7cc1
jmp 0x4c786d
cmp edi, edx
jge 0x4c7871
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x4c793f
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c7d80
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 0x4c7d9c
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 0x10
jne 0x4c786d
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c7d43
jmp 0x4c786d
cmp edi, edx
jge 0x4c7871
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x4c7e31
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c7dfe
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 0x4c786d
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 0x10
je 0x4c786d
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c7dc1
jmp 0x4c786d
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x4c7968
cmp ebx, dword [ecx + 0x88]
jbe 0x4c7968
mov dword [ecx + 0x64], 1
cmp eax, 1
jle 0x4c7968
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov esi, dword [esp + 0x1c]
mov ecx, edx
jmp 0x4c7878
cmp ecx, 0x74
mov ecx, ebx
jne 0x4c7ec4
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.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov esi, ebp
mov ebp, dword [esp + 0x174]
jmp 0x4c80cb
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.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov ebp, dword [esp + 0x174]
add esi, 4
jmp 0x4c80cb
mov edx, dword [esp + 0x170]
mov eax, dword [ebp + 0x90]
cmp eax, edx
movzx ecx, word [esi + 6]
cmovg edx, eax
add ecx, 2
cmp word [esi + ecx*2], 0x71
mov dword [esp + 0x170], edx
lea ecx, [esi + ecx*2]
jne 0x4c7f60
mov edx, ecx
nop word [eax + eax]
movzx eax, word [ecx + 2]
cmp word [edx + eax*2], 0x71
lea ecx, [edx + eax*2]
mov edx, ecx
je 0x4c7f40
jmp 0x4c7f59
mov ebp, dword [esp + 0x174]
mov edx, dword [esp + 0x170]
cmp dword [esp + 0x20], 0x86
lea esi, [ecx + 4]
mov dword [esp + 0x14], esi
jne 0x4c80cf
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.004c2d00
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
cmp eax, 0x75
je 0x4c82e8
cmp eax, 0x74
jne 0x4c8014
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
push eax
push dword [esp + 0x17c]
push edx
push edi
push dword [esp + 0x17c]
lea edx, [esi + 4]
call fcn.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
movzx eax, word [ebp]
cmp eax, 0x7b
je 0x4c8295
mov ecx, 0x82
cmp ax, cx
jae 0x4c8254
mov esi, ebp
mov ebp, dword [esp + 0x174]
jmp 0x4c80cb
mov eax, 0x82
cmp word [ebp], ax
jb 0x4c8029
mov dword [edx + 0x9c], 2
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
push eax
push dword [esp + 0x17c]
push edx
push edi
push dword [esp + 0x17c]
mov edx, ebp
call fcn.004c2d00
mov ecx, dword [esp + 0x188]
add esp, 0x14
cmp eax, 0xfffffc1c
jne 0x4c8064
cmp dword [ecx + 0xb8], ebp
je 0x4c806c
test eax, eax
jne 0x4c80e4
add esi, 4
cmp word [ebp], 0x7b
mov dword [esp + 0x14], esi
je 0x4c82d3
mov ebp, dword [esp + 0x174]
jmp 0x4c80cf
movzx edx, word [esi + 4]
mov dword [esp + 0x44], edx
lea eax, [edx + edx]
cmp eax, dword [ebp + 0x14]
jl 0x4c9df5
mov edx, dword [esp + 0x20]
nop
cmp edx, 0x82
jae 0x4c80ef
cmp edx, 0x7b
je 0x4c80ef
cmp dword [ebp + 0x6c], 0
jne 0x4c80f9
movzx eax, word [esi + 2]
cmp word [esi + eax*2], 0x71
je 0x4c80f9
movzx eax, cx
movzx eax, byte [eax + 0x4e3380]
lea esi, [esi + eax*2]
mov dword [esp + 0x14], esi
mov eax, dword [ebp]
cmp eax, dword [ebp + 4]
jb 0x4c2da1
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 esi, dword [ebp + 0xb0]
inc eax
push eax
push dword [esp + 0x17c]
push ebp
push edi
mov edi, dword [esp + 0x24]
push dword [esp + 0x17c]
movzx eax, word [edi]
movzx eax, byte [eax + 0x4e3380]
lea edx, [edi + eax*2]
call fcn.004c2d00
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc20
jne 0x4c815a
movzx eax, word [edi + 2]
lea ecx, [edi + eax*2]
mov eax, edx
cmp dword [ebp + 0x80], ecx
jae 0x4c815a
cmp word [edi], 0x71
je 0x4c8162
cmp word [ecx], 0x71
je 0x4c8162
test eax, eax
jne 0x4c9f1b
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.0x4c471c
mov edi, dword [esp + 0x170]
mov ecx, 0x71
jmp 0x4c809b
mov eax, dword [esp + 0x17c]
inc eax
push eax
push dword [esp + 0x17c]
movzx eax, word [esi + 2]
add ecx, eax
push ebp
push edi
push dword [esp + 0x17c]
lea edx, [esi + ecx*2]
mov ecx, ebx
call fcn.004c2d00
add esp, 0x14
test eax, eax
je 0x4c81d2
cmp eax, 0xfffffc1d
je 0x4c81d2
cmp eax, 0xfffffc20
jne 0x4c80e4
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 + 0x60]
lea ecx, [esp + 0xf0]
cmp eax, ecx
je 0x4c8214
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, 0xfffffffa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x16c]
mov dword [edx + 0x84], ebx
mov dword [edx + 0x80], eax
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ecx, dword [esp + 0x174]
mov edx, ebp
mov dword [ecx + 0x9c], 2
mov eax, dword [esp + 0x17c]
inc eax
push eax
push dword [esp + 0x17c]
push ecx
push edi
push dword [esp + 0x17c]
mov ecx, ebx
call fcn.004c2d00
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edx, ebp
inc eax
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push edi
push dword [esp + 0x17c]
mov ecx, ebx
call fcn.004c2d00
add esp, 0x14
test eax, eax
je 0x4c8331
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edx, esi
inc eax
push eax
push dword [esp + 0x17c]
push ecx
jmp 0x4c82ae
mov dword [edx + 0x84], ebx
mov eax, 0xfffffc1b
mov dword [edx + 0x90], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
push eax
push dword [esp + 0x17c]
push edx
push edi
push dword [esp + 0x17c]
mov edx, esi
call fcn.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov eax, dword [esp + 0x174]
mov dword [eax + 0xb8], ebp
mov eax, 0xfffffc1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x16c]
mov dword [eax + 0x84], ebx
mov dword [eax + 0x90], edi
mov dword [eax + 0x80], ecx
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [ebp + 0x8c]
test eax, eax
je case.default.0x4c471c
cmp ebx, dword [ebp + 0x88]
jbe case.default.0x4c471c
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4c9de5
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.0x4c471c
cmp ebx, dword [esi + 0x7c]
jb case.default.0x4c471c
cmp ebx, dword [esi + 0x88]
jbe case.default.0x4c471c
mov dword [esi + 0x64], 1
jmp 0x4c8397
mov edi, ebx
cmp esi, eax
jge 0x4c8441
nop word [eax + eax]
push edx
push dword [esp + 0x178]
mov edx, ebx
push ebp
call fcn.004c2b50
add esp, 0xc
test eax, eax
js 0x4c840b
mov ecx, dword [esp + 0x3c]
lea ebx, [ebx + eax*2]
mov edx, dword [esp + 0x38]
inc esi
cmp esi, dword [esp + 0x28]
jl 0x4c83e0
jmp 0x4c8439
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x4c8439
cmp ebx, dword [ecx + 0x7c]
jb 0x4c8439
cmp ebx, dword [ecx + 0x88]
jbe 0x4c8439
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x4c9de5
cmp ebx, edi
jb case.default.0x4c471c
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.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov eax, ebp
neg eax
lea ebx, [ebx + eax*2]
cmp ebx, edi
jae 0x4c8441
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
test byte [edx + ebp], al
je case.default.0x4c471c
mov ecx, dword [esp + 0x174]
mov eax, dword [esp + 0x17c]
inc edi
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov esi, edi
push ecx
push dword [esp + 0x17c]
mov ecx, ebx
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
test eax, eax
je 0x4c5030
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ebp, ebx
cmp edi, eax
jge 0x4c8564
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x28]
mov edi, dword [eax + 0x7c]
nop
cmp ebx, edi
jae 0x4c863a
movzx edx, word [ebx]
mov esi, 1
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c854d
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 0x4c8601
cmp dword [esp + 0x20], 0x6a
jne 0x4c8621
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.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, ebp
je case.default.0x4c471c
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4c85c7
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.004c2d00
add esp, 0x14
test eax, eax
je 0x4c85a2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [esp + 0x3c]
test byte [edx + ecx], al
je 0x4c8564
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x38]
lea ebx, [ebx + esi*2]
inc eax
mov dword [esp + 0x38], eax
cmp eax, ecx
jl 0x4c8510
jmp 0x4c8564
mov esi, dword [esp + 0x174]
mov eax, dword [esi + 0x8c]
test eax, eax
je 0x4c856b
cmp ebx, dword [esi + 0x88]
jbe 0x4c856b
mov dword [esi + 0x64], 1
cmp eax, 1
jg 0x4c9de5
jmp 0x4c856b
mov ebp, ebx
cmp edi, eax
jge 0x4c86e1
nop word [eax + eax]
mov esi, dword [esp + 0x174]
cmp ebx, dword [esi + 0x7c]
jae 0x4c877f
movzx ecx, word [ebx]
mov esi, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c86c5
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.004cc130
add esp, 4
test eax, eax
je 0x4c86e1
inc edi
lea ebx, [ebx + esi*2]
cmp edi, dword [esp + 0x28]
jl 0x4c8680
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.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
nop
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, ebp
je case.default.0x4c471c
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4c8745
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.004c2d00
add esp, 0x14
test eax, eax
je 0x4c8720
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esi + 0x8c]
test eax, eax
je 0x4c86e8
cmp ebx, dword [esi + 0x88]
jbe 0x4c86e8
mov dword [esi + 0x64], 1
cmp eax, 1
jg 0x4c9de5
jmp 0x4c86e8
mov eax, dword [ebp + 0x8c]
test eax, eax
je case.default.0x4c471c
cmp ebx, ecx
jb case.default.0x4c471c
jmp 0x4c8388
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je case.default.0x4c471c
cmp ebx, dword [ecx + 0x7c]
jb case.default.0x4c471c
cmp ebx, dword [ecx + 0x88]
jbe case.default.0x4c471c
mov dword [ecx + 0x64], 1
jmp 0x4c8397
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.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov esi, edi
nop dword [eax]
cmp esi, dword [esp + 0x1c]
jge case.default.0x4c471c
mov ebp, dword [ebp + 0x7c]
lea eax, [ebp - 4]
cmp ebx, eax
ja 0x4c88bb
mov eax, dword [esp + 0x3c]
mov ecx, ebx
mov edx, dword [esp + 0x30]
lea esi, [eax + eax]
sub esi, 4
jb 0x4c8881
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4c8886
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4c8870
cmp esi, 0xfffffffc
je 0x4c88b3
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4c88bb
cmp esi, 0xfffffffd
je 0x4c88b3
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4c88bb
cmp esi, 0xfffffffe
je 0x4c88b3
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4c88bb
cmp esi, 0xffffffff
je 0x4c88b3
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4c88bb
add ebx, 4
jmp 0x4c8939
mov ecx, dword [esp + 0x38]
test ecx, ecx
jle 0x4c8987
lea edi, [ecx + ecx]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x4c8987
lea esi, [ecx + ecx]
mov ecx, ebx
lea edx, [esp + 0x74]
sub esi, 4
jb 0x4c88f5
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4c88fa
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4c88e4
cmp esi, 0xfffffffc
je 0x4c8933
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4c8987
cmp esi, 0xfffffffd
je 0x4c8933
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4c8987
cmp esi, 0xfffffffe
je 0x4c8933
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4c8987
cmp esi, 0xffffffff
je 0x4c8933
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4c8987
add ebx, edi
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x17c]
inc edi
mov ebp, dword [esp + 0x174]
inc eax
mov edx, dword [esp + 0x14]
mov ecx, ebx
push eax
push dword [esp + 0x17c]
mov dword [esp + 0x2c], edi
mov esi, edi
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
test eax, eax
je 0x4c8840
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.0x4c471c
cmp ebx, ebp
jmp 0x4c87e1
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je case.default.0x4c471c
jmp 0x4c87e7
cmp ebx, edi
jb case.default.0x4c471c
nop word [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.004c2d00
add esp, 0x14
sub ebx, 2
test eax, eax
jne 0x4c80e4
cmp ebx, edi
jae 0x4c89d0
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.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov ecx, dword [esp + 0x24]
mov edi, ecx
nop dword [eax + eax]
cmp edi, dword [esp + 0x1c]
jge case.default.0x4c471c
mov edx, dword [esp + 0x174]
cmp ebx, dword [edx + 0x7c]
jae 0x4c8acd
movzx eax, word [ebx]
cmp esi, eax
je 0x4c8a85
cmp ebp, eax
jne case.default.0x4c471c
mov eax, dword [esp + 0x17c]
inc ecx
inc eax
mov dword [esp + 0x24], ecx
push eax
push dword [esp + 0x17c]
add ebx, 2
mov edi, ecx
push edx
push dword [esp + 0x17c]
mov edx, dword [esp + 0x24]
mov ecx, ebx
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
mov ecx, edi
test eax, eax
je 0x4c8a60
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [edx + 0x8c]
test eax, eax
je case.default.0x4c471c
cmp ebx, dword [edx + 0x88]
jbe case.default.0x4c471c
mov dword [edx + 0x64], 1
jmp 0x4c8397
mov eax, dword [edi + 0x8c]
test eax, eax
je case.default.0x4c471c
cmp ebx, dword [edi + 0x88]
jbe case.default.0x4c471c
mov dword [edi + 0x64], 1
jmp 0x4c8397
cmp ebx, edi
jb case.default.0x4c471c
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.004c2d00
add esp, 0x14
sub ebx, 2
test eax, eax
jne 0x4c80e4
cmp ebx, edi
jae 0x4c8b21
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 edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov ecx, ebp
nop dword [eax]
cmp ebp, dword [esp + 0x1c]
jge case.default.0x4c471c
cmp ebx, dword [edi + 0x7c]
jae 0x4c8af3
movzx eax, word [ebx]
add ebx, 2
cmp esi, eax
jne case.default.0x4c471c
mov eax, dword [esp + 0x17c]
lea ebp, [ecx + 1]
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov ecx, ebx
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
mov ecx, ebp
test eax, eax
je 0x4c8ba0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edx, esi
inc eax
push eax
push dword [esp + 0x17c]
push ecx
push edi
push dword [esp + 0x17c]
mov ecx, ebx
call fcn.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
nop
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, ebp
je case.default.0x4c471c
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4c8c55
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.004c2d00
add esp, 0x14
test eax, eax
je 0x4c8c30
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edx, esi
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov esi, edi
nop word [eax + eax]
cmp esi, dword [esp + 0x20]
jge case.default.0x4c471c
mov edx, dword [esp + 0x174]
cmp ebx, dword [edx + 0x7c]
jae 0x4c8acd
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c8d1a
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ebx, 2
add ecx, 0x10000
cmp dword [esp + 0x38], ecx
je case.default.0x4c471c
cmp ebp, ecx
je case.default.0x4c471c
mov eax, dword [esp + 0x17c]
inc edi
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
mov esi, edi
push edx
push dword [esp + 0x17c]
mov edx, dword [esp + 0x24]
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
test eax, eax
je 0x4c8cd0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edx, esi
inc eax
push eax
push dword [esp + 0x17c]
push ecx
push edi
push dword [esp + 0x17c]
mov ecx, ebx
call fcn.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
nop dword [eax]
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, ebp
je case.default.0x4c471c
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4c8dc5
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.004c2d00
add esp, 0x14
test eax, eax
je 0x4c8da0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edx, esi
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov esi, edi
nop word [eax + eax]
cmp esi, dword [esp + 0x20]
jge case.default.0x4c471c
mov edx, dword [esp + 0x174]
cmp ebx, dword [edx + 0x7c]
jae 0x4c8acd
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c8e8a
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ebx, 2
add ecx, 0x10000
cmp ebp, ecx
je case.default.0x4c471c
mov eax, dword [esp + 0x17c]
inc edi
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
mov esi, edi
push edx
push dword [esp + 0x17c]
mov edx, dword [esp + 0x24]
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
test eax, eax
je 0x4c8e40
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edx, esi
inc eax
push eax
push dword [esp + 0x17c]
push ecx
push edi
push dword [esp + 0x17c]
mov ecx, ebx
call fcn.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, ebp
je case.default.0x4c471c
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4c8f27
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.004c2d00
add esp, 0x14
test eax, eax
je 0x4c8f02
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
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.004c2d00
add esp, 0x14
test eax, eax
je 0x4c74b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
test eax, eax
js 0x4c98e5
cmp eax, 8
ja case.default.0x4c4a56
jmp dword [eax*4 + 0x4ca884]
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.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov esi, edi
nop word [eax + eax]
mov ecx, ebx
cmp esi, dword [esp + 0x24]
jge case.default.0x4c471c
cmp ebx, dword [ebp + 0x7c]
jae 0x4c837e
movzx eax, word [ebx]
add ebx, 2
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c902a
lea ebx, [ecx + 4]
cmp dword [esp + 0x34], 0
jne case.default.0x4c471c
mov eax, dword [esp + 0x17c]
inc edi
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov ecx, ebx
mov esi, edi
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
test eax, eax
je 0x4c9000
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.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov esi, edi
cmp esi, dword [esp + 0x24]
jge case.default.0x4c471c
cmp ebx, dword [ebp + 0x7c]
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c90f5
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ebx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4e1180]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d47a0]
mov al, byte [eax*8 + 0x4e00a1]
cmp al, 9
je 0x4c9128
cmp al, 5
je 0x4c9128
cmp al, 8
je 0x4c9128
xor eax, eax
jmp 0x4c912d
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.default.0x4c471c
mov eax, dword [esp + 0x17c]
inc edi
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov ecx, ebx
mov esi, edi
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
test eax, eax
je 0x4c90b2
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.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov esi, edi
nop dword [eax + eax]
cmp esi, dword [esp + 0x24]
jge case.default.0x4c471c
cmp ebx, dword [ebp + 0x7c]
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c9203
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
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 + 0x4e1180]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
cmp dword [eax*4 + 0x4e3760], edx
sete cl
cmp ecx, dword [esp + 0x34]
je case.default.0x4c471c
mov eax, dword [esp + 0x17c]
inc edi
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov ecx, ebx
mov esi, edi
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
test eax, eax
je 0x4c91c0
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.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov esi, edi
cmp esi, dword [esp + 0x24]
jge case.default.0x4c471c
cmp ebx, dword [ebp + 0x7c]
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c9305
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ebx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4e1180]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
cmp eax, dword [esp + 0x40]
sete cl
cmp ecx, dword [esp + 0x34]
je case.default.0x4c471c
mov eax, dword [esp + 0x17c]
inc edi
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov ecx, ebx
mov esi, edi
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
test eax, eax
je 0x4c92c2
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.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov esi, edi
nop dword [eax]
cmp esi, dword [esp + 0x24]
jge case.default.0x4c471c
cmp ebx, dword [ebp + 0x7c]
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c9403
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ebx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4e1180]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a0]
cmp eax, dword [esp + 0x40]
sete cl
cmp ecx, dword [esp + 0x34]
je case.default.0x4c471c
mov eax, dword [esp + 0x17c]
inc edi
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov ecx, ebx
mov esi, edi
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
test eax, eax
je 0x4c93c0
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.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov esi, edi
nop dword [eax + eax]
cmp esi, dword [esp + 0x24]
jge case.default.0x4c471c
cmp ebx, dword [ebp + 0x7c]
jae 0x4c837e
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c9503
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ebx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4e1180]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
mov eax, dword [eax*4 + 0x4e3760]
cmp eax, 1
je 0x4c953c
cmp eax, 3
je 0x4c953c
xor eax, eax
jmp 0x4c9541
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.default.0x4c471c
mov eax, dword [esp + 0x17c]
inc edi
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov ecx, ebx
mov esi, edi
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
test eax, eax
je 0x4c94c0
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.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov esi, edi
nop dword [eax]
cmp esi, dword [esp + 0x24]
jge case.default.0x4c471c
cmp ebx, dword [ebp + 0x7c]
jae 0x4c837e
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c9613
movzx eax, word [ebx]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add ebx, 2
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4e1180]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
cmp dword [eax*4 + 0x4e3760], 6
je 0x4c965b
cmp edx, 9
je 0x4c965b
cmp edx, 0xa
je 0x4c965b
cmp edx, 0xc
je 0x4c965b
cmp edx, 0xd
je 0x4c965b
xor eax, eax
jmp 0x4c9660
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.default.0x4c471c
mov eax, dword [esp + 0x17c]
inc edi
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov ecx, ebx
mov esi, edi
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
test eax, eax
je 0x4c95d0
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.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov esi, edi
nop dword [eax + eax]
cmp esi, dword [esp + 0x24]
jge case.default.0x4c471c
cmp ebx, dword [ebp + 0x7c]
jae 0x4c837e
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c9733
movzx eax, word [ebx]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add ebx, 2
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4e1180]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
cmp dword [eax*4 + 0x4e3760], 6
je 0x4c9780
cmp edx, 9
je 0x4c9780
cmp edx, 0xa
je 0x4c9780
cmp edx, 0xb
je 0x4c9780
cmp edx, 0xc
je 0x4c9780
cmp edx, 0xd
je 0x4c9780
xor eax, eax
jmp 0x4c9785
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.default.0x4c471c
mov eax, dword [esp + 0x17c]
inc edi
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov ecx, ebx
mov esi, edi
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
test eax, eax
je 0x4c96f0
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.004c2d00
add esp, 0x14
test eax, eax
jne 0x4c80e4
mov esi, edi
cmp esi, dword [esp + 0x24]
jge case.default.0x4c471c
cmp ebx, dword [ebp + 0x7c]
jae 0x4c837e
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c9853
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 + 0x4e1180]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
mov eax, dword [eax*4 + 0x4e3760]
cmp eax, 1
je 0x4c9893
cmp eax, 3
je 0x4c9893
cmp edx, 0x5f
je 0x4c9893
xor eax, eax
jmp 0x4c9898
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.default.0x4c471c
mov eax, dword [esp + 0x17c]
inc edi
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov ecx, ebx
mov esi, edi
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
test eax, eax
je 0x4c9810
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.004c2d00
add esp, 0x14
cmp esi, 0x16
jne 0x4c9a5d
test eax, eax
jne 0x4c80e4
mov esi, edi
nop dword [eax]
cmp esi, dword [esp + 0x24]
jge case.default.0x4c471c
mov esi, dword [ebp + 0x7c]
cmp ebx, esi
jae 0x4c837e
movzx ecx, word [ebx]
lea edx, [ebx + 2]
mov eax, ecx
mov ebx, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c9977
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4e1180]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
cmp dword [eax*4 + 0x4e3760], 2
je case.default.0x4c471c
cmp ebx, esi
jae 0x4c9a1a
nop dword [eax]
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c99e5
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 + 0x4e1180]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d47a0]
movzx eax, byte [eax*8 + 0x4e00a1]
cmp dword [eax*4 + 0x4e3760], 2
jne 0x4c9a1a
lea ebx, [ebx + edx*2]
cmp ebx, esi
jb 0x4c99b0
mov eax, dword [esp + 0x17c]
inc edi
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov ecx, ebx
mov esi, edi
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
test eax, eax
je 0x4c9930
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
test eax, eax
jne 0x4c80e4
mov esi, edi
nop word [eax + eax]
cmp esi, dword [esp + 0x24]
jge case.default.0x4c471c
mov ecx, dword [ebp + 0x7c]
cmp ebx, ecx
jae 0x4c9dbb
mov edx, dword [esp + 0x1c]
cmp edx, 0xc
jne 0x4c9adf
mov edx, dword [ebp + 0x18]
lea eax, [ebp + 0x1c]
test edx, edx
je 0x4c9ab0
push 1
push eax
push ecx
mov ecx, ebx
call fcn.004cbf80
add esp, 0xc
test eax, eax
jne case.default.0x4c471c
jmp 0x4c9adb
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja 0x4c9adb
mov ax, word [ebx]
cmp ax, word [ebp + 0x2c]
jne 0x4c9adb
cmp edx, 1
je case.default.0x4c471c
mov ax, word [ebx + 2]
cmp ax, word [ebp + 0x2e]
je case.default.0x4c471c
mov edx, dword [esp + 0x1c]
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c9b0f
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
lea eax, [edx - 6]
cmp eax, 0xf
ja case.default.0x4c4a56
jmp dword [eax*4 + 0x4ca8a8]
cmp ecx, 0x85
ja 0x4c9b5a
je case.0x4c9b38.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4c471c
jmp dword [ecx*4 + 0x4ca8e8]
cmp ebx, dword [ebp + 0x7c]
jae case.0x4c9b1b.12
cmp word [ebx], 0xa
jne case.0x4c9b1b.12
add ebx, 2
jmp case.0x4c9b1b.12
sub ecx, 0x2028
je case.0x4c9b38.11
sub ecx, 1
jne case.default.0x4c471c
cmp dword [ebp + 0x68], 0
jne case.default.0x4c471c
jmp case.0x4c9b1b.12
cmp ecx, 0x2000
ja 0x4c9bbe
je case.default.0x4c471c
cmp ecx, 0xa0
ja 0x4c9ba7
je case.default.0x4c471c
cmp ecx, 9
je case.default.0x4c471c
cmp ecx, 0x20
jmp 0x4c9d62
cmp ecx, 0x1680
je case.default.0x4c471c
cmp ecx, 0x180e
jmp 0x4c9d62
cmp ecx, 0x3000
ja case.0x4c9b1b.12
je case.default.0x4c471c
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4c9b1b.12
movzx eax, byte [ecx + 0x4ca900]
jmp dword [eax*4 + 0x4ca8f8]
cmp ecx, 0x2000
ja 0x4c9c3d
je case.0x4c9b1b.12
cmp ecx, 0xa0
ja 0x4c9c20
je case.0x4c9b1b.12
cmp ecx, 9
je case.0x4c9b1b.12
cmp ecx, 0x20
jne case.default.0x4c471c
jmp case.0x4c9b1b.12
cmp ecx, 0x1680
je case.0x4c9b1b.12
cmp ecx, 0x180e
jne case.default.0x4c471c
jmp case.0x4c9b1b.12
cmp ecx, 0x3000
ja case.default.0x4c471c
je case.0x4c9b1b.12
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x4c471c
movzx eax, byte [ecx + 0x4ca968]
jmp dword [eax*4 + 0x4ca960]
cmp ecx, 0x85
ja 0x4c9c8d
je case.default.0x4c471c
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4c9b1b.12
jmp dword [ecx*4 + 0x4ca9c8]
sub ecx, 0x2028
je case.default.0x4c471c
sub ecx, 1
jmp 0x4c9d62
cmp ecx, 0x85
ja 0x4c9cc2
je case.0x4c9b1b.12
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4c471c
jmp dword [ecx*4 + 0x4ca9d8]
sub ecx, 0x2028
je case.0x4c9b1b.12
sub ecx, 1
jne case.default.0x4c471c
jmp case.0x4c9b1b.12
cmp ecx, 0x100
jae case.0x4c9b1b.12
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 4
jne case.default.0x4c471c
jmp case.0x4c9b1b.12
cmp ecx, 0x100
jae case.default.0x4c471c
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 4
jmp 0x4c9d62
cmp ecx, 0x100
jae case.0x4c9b1b.12
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 1
jne case.default.0x4c471c
jmp case.0x4c9b1b.12
cmp ecx, 0x100
jae case.default.0x4c471c
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 1
jmp 0x4c9d62
cmp ecx, 0x100
jae case.0x4c9b1b.12
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
jne case.default.0x4c471c
jmp case.0x4c9b1b.12
cmp ecx, 0x100
jae case.default.0x4c471c
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
je case.default.0x4c471c
mov eax, dword [esp + 0x17c]
inc edi
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
mov ecx, ebx
mov esi, edi
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004c2d00
add esp, 0x14
test eax, eax
je 0x4c9a70
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.0x4c471c
cmp ebx, dword [ebp + 0x88]
jbe case.default.0x4c471c
mov dword [ebp + 0x64], 1
cmp eax, 1
jle case.default.0x4c471c
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x94]
mov eax, dword [ecx + edx*8]
mov dword [esp + 0x54], eax
mov eax, dword [ecx + edx*8 + 4]
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0x10]
mov ebp, dword [ebp + 0xb0]
sub eax, edx
mov edx, dword [esp + 0x174]
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
mov dword [esp + 0x30], eax
mov eax, ebx
sub eax, dword [edx + 0x78]
sar eax, 1
mov dword [ecx], eax
cmp dword [esp + 0x20], 0x82
jb 0x4c9e45
mov dword [edx + 0x9c], 2
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
push eax
push dword [esp + 0x17c]
movzx eax, word [esi]
push edx
push dword [esp + 0x17c]
movzx eax, byte [eax + 0x4e3380]
push dword [esp + 0x17c]
lea edx, [esi + eax*2]
call fcn.004c2d00
mov edx, dword [esp + 0x188]
mov esi, eax
add esp, 0x14
cmp esi, 0xfffffc1c
je 0x4c9edf
mov ecx, dword [esp + 0x14]
cmp esi, 0xfffffc20
jne 0x4c9eb7
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [edx + 0x80], eax
jae 0x4c9eb7
cmp word [ecx], 0x71
je 0x4c9eb3
cmp word [eax], 0x71
jne 0x4c9eb7
xor esi, esi
jmp 0x4c9ebb
test esi, esi
jne 0x4c9f0e
mov dword [edx + 0x94], edi
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edx + 0xb0], ebp
cmp word [ecx], 0x71
mov dword [esp + 0x14], ecx
jne 0x4c9edf
mov esi, ecx
jmp 0x4c9e31
mov ecx, dword [edx + 0xc]
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x174]
mov edx, dword [esp + 0x54]
mov dword [ecx + eax*8], edx
mov ecx, dword [ebx + 0xc]
mov edx, dword [esp + 0x50]
mov dword [ecx + eax*8 + 4], edx
mov edx, dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
sub edx, eax
mov eax, dword [esp + 0x30]
mov dword [ecx + edx*4], eax
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
cmp eax, 0xfffffc1c
jne 0x4c9f56
movzx eax, word [edi]
mov ecx, eax
cmp eax, 0x7b
je 0x4c9f4b
cmp ecx, 0x71
jne 0x4c9f43
mov ecx, edi
movzx eax, word [edi + 2]
cmp word [ecx + eax*2], 0x71
lea edi, [ecx + eax*2]
mov ecx, edi
je 0x4c9f33
movzx eax, word [edi + 2]
add eax, eax
sub edi, eax
xor eax, eax
cmp dword [ebp + 0xb8], edi
cmove edx, eax
mov eax, edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
lea edi, [esi + 4]
mov dword [ebp + 0xb4], edi
mov dword [ebp + 0xb0], 0
mov eax, dword [esp + 0x17c]
inc eax
push eax
movzx eax, word [esi]
push dword [esp + 0x17c]
push ebp
movzx ecx, byte [eax + 0x4e3380]
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.004c2d00
mov esi, eax
add esp, 0x14
cmp esi, 1
je 0x4c9fc1
cmp esi, 0xfffffc19
jne 0x4c9fdd
cmp dword [ebp + 0xb0], 0
jne 0x4c9fdd
mov dword [ebp + 0xb0], edi
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
cmp esi, 0xfffffc1f
jne 0x4c9f0e
mov edx, dword [ebp + 0x80]
mov ecx, edi
call fcn.004cbef0
test eax, eax
jne 0x4c9f0e
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 + 0x4e3380]
push ebp
push edi
push dword [esp + 0x17c]
lea edx, [esi + eax*2]
call fcn.004c2d00
mov ecx, eax
add esp, 0x14
test ecx, ecx
je 0x4ca076
cmp ecx, 0xfffffc1d
je 0x4ca076
cmp ecx, 0xfffffc1e
je 0x4ca076
cmp ecx, 0xfffffc1f
je 0x4ca076
cmp ecx, 0xfffffc20
mov eax, 0xfffffc1a
cmovne eax, ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, 0xfffffc1a
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
push eax
push dword [esp + 0x17c]
movzx eax, byte [edx + 0x4e3380]
push ebp
push edi
push dword [esp + 0x17c]
lea edx, [esi + eax*2]
call fcn.004c2d00
add esp, 0x14
test eax, eax
je 0x4ca0c2
cmp eax, 0xfffffc20
jne 0x4c80e4
mov eax, 0xfffffc1d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov edx, dword [esp + 0x14]
add esi, 4
mov dword [ebp + 0xb4], esi
mov dword [ebp + 0xb0], 0
mov eax, dword [esp + 0x17c]
inc eax
push eax
movzx eax, word [edx]
push dword [esp + 0x17c]
push ebp
movzx ecx, byte [eax + 0x4e3380]
movzx eax, word [edx + 2]
add ecx, eax
push edi
push dword [esp + 0x17c]
lea edx, [edx + ecx*2]
mov ecx, ebx
call fcn.004c2d00
mov ecx, eax
add esp, 0x14
cmp ecx, 1
je 0x4ca12e
cmp ecx, 0xfffffc19
jne 0x4ca13d
cmp dword [ebp + 0xb0], 0
jne 0x4ca13d
mov dword [ebp + 0xb0], esi
test ecx, ecx
je 0x4ca0c2
cmp ecx, 0xfffffc20
mov eax, 0xfffffc1d
cmovne eax, ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
push eax
push dword [esp + 0x17c]
movzx eax, byte [edx + 0x4e3380]
push ebp
push edi
push dword [esp + 0x17c]
lea edx, [esi + eax*2]
call fcn.004c2d00
add esp, 0x14
test eax, eax
je 0x4ca19d
cmp eax, 0xfffffc1d
je 0x4ca19d
cmp eax, 0xfffffc20
jne 0x4c80e4
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 + 0x4e3380]
push ebp
push edi
push dword [esp + 0x17c]
lea edx, [esi + eax*2]
call fcn.004c2d00
add esp, 0x14
test eax, eax
je 0x4ca267
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 + 0x4e3380]
movzx eax, word [edx + 2]
add ecx, eax
push edi
push dword [esp + 0x17c]
lea edx, [edx + ecx*2]
mov ecx, ebx
call fcn.004c2d00
add esp, 0x14
cmp eax, 1
je 0x4ca24c
cmp eax, 0xfffffc19
jne 0x4ca25b
cmp dword [ebp + 0xb0], 0
jne 0x4ca25b
mov dword [ebp + 0xb0], esi
test eax, eax
jne 0x4c80e4
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 0x4ca2bd
cmp edx, 0x99
je 0x4ca2bd
cmp dword [ebp + 0xa8], 0
jne 0x4ca2bd
cmp dword [ebp + 0x5c], 0
jne case.default.0x4c471c
cmp dword [ebp + 0x60], 0
je 0x4ca2bd
mov ecx, dword [ebp + 0x98]
mov eax, dword [ebp + 0x78]
lea eax, [eax + ecx*2]
cmp esi, eax
je case.default.0x4c471c
mov dword [ebp + 0x84], ebx
test edx, edx
mov eax, 0xfffffc19
mov dword [ebp + 0x90], edi
mov ecx, 1
mov dword [ebp + 0x80], esi
cmove eax, ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, 0xfffffffb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffeb
pop ebx
add esp, 0x158
ret