Function at 0x4c32b0
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 0x4c330e
cmp dword [esp + 0x17c], edx
jne 0x4c32f3
push 1
push edx
push edx
push edx
push edx
lea ecx, [esp + 0x190]
call fcn.004c32b0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
lea eax, [esp + 0x17c]
sub eax, ebx
cdq
xor eax, edx
sub eax, edx
neg eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ebp, dword [esp + 0x174]
mov dword [esp + 0x44], 0
mov dword [esp + 0x30], 0
mov eax, dword [ebp]
cmp eax, dword [ebp + 4]
jae 0x4c86cb
mov dword [esp + 0x4c], 0xfc00
mov dword [esp + 0x50], 0xdc00
mov dword [esp + 0x54], closesocket
mov dword [esp + 0x48], 0xd800
inc eax
mov dword [ebp], eax
mov eax, dword [esp + 0x17c]
cmp eax, dword [ebp + 8]
jae 0x4ca9a6
cmp dword [ebp + 0x9c], 2
jne 0x4c3392
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 0x4c33b2
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.0x4c33de.98
movzx eax, byte [edx + 0x4cab00]
jmp dword [eax*4 + 0x4ca9b8]
cmp dword [ebp + 0x70], 0
movzx ecx, byte [edx + 0x4e37b0]
je 0x4c878b
movzx eax, word [esi + 2]
add ecx, eax
lea esi, [esi + ecx*2]
mov dword [esp + 0x14], esi
jmp 0x4c33b2
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.004c32b0
mov edx, eax
add esp, 0x14
cmp edx, 1
je 0x4c3523
cmp edx, 0xfffffc20
jne 0x4c348d
mov eax, dword [esp + 0x14]
movzx ecx, word [eax + 2]
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x174]
cmp dword [ecx + 0x80], eax
jae 0x4ca5af
mov ecx, dword [esp + 0x14]
cmp word [ecx], 0x71
je 0x4c3499
cmp word [eax], 0x71
jne 0x4ca5af
jmp 0x4c3499
test edx, edx
jne 0x4ca5af
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + 2]
mov edx, dword [esp + 0x174]
lea ecx, [ecx + eax*2]
mov dword [edx + 0xb0], esi
movzx eax, word [ecx]
mov dword [esp + 0x14], ecx
mov ecx, eax
cmp eax, 0x71
je 0x4c3416
mov esi, dword [esp + 0x14]
movzx eax, cx
cmp eax, 0x7c
je 0x4c34d4
cmp eax, 0x71
jne case.default.0x4c4cc6
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
movzx eax, word [esi]
mov ecx, eax
cmp eax, 0x71
je 0x4c34d4
mov eax, dword [edx + 0x90]
mov ebx, dword [edx + 0x84]
mov dword [esp + 0x170], eax
mov dword [esp + 0x18], ebx
cmp ecx, 0x72
je 0x4c3509
cmp ebx, edi
jne 0x4c844d
add esi, 4
mov dword [esp + 0x14], esi
mov ebp, dword [esp + 0x174]
mov edi, dword [esp + 0x170]
jmp 0x4c33b2
mov edx, dword [esp + 0x174]
mov esi, dword [esp + 0x14]
mov eax, dword [edx + 0x80]
movzx ecx, word [esi]
mov dword [esp + 0x16c], eax
jmp 0x4c34c3
xor ebp, ebp
mov dword [esp + 0x38], ebp
jmp 0x4c4058
cmp word [esi + 4], 0x70
movzx edi, word [esi + 2]
jne 0x4c3639
mov esi, dword [0x4fd2e8]
test esi, esi
je 0x4c362e
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.0x4c4cc6
js 0x4c86d4
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 0x4c3856
cmp ecx, 0x8a
je 0x4c3856
cmp ecx, 0x87
je 0x4c36ca
cmp ecx, 0x88
je 0x4c36ca
cmp ecx, 0x8b
jne 0x4c367c
movzx eax, word [esi + 2]
lea eax, [esi + eax*2]
jmp 0x4c39e8
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.004c32b0
add esp, 0x14
cmp eax, 1
je 0x4c84de
test eax, eax
je 0x4c36c2
cmp eax, 0xfffffc20
jne 0x4c86d4
lea eax, [esi + edi*2]
jmp 0x4c39e8
movzx esi, word [esi + 6]
lea edx, [esi + esi]
cmp edx, dword [esp + 0x170]
jge 0x4c36e7
mov eax, dword [ebp + 0xc]
cmp dword [eax + edx*4], 0
jge 0x4c3840
xor edi, edi
cmp ecx, 0x88
jne 0x4c381f
mov ecx, dword [esp + 0x174]
mov eax, dword [ebp + 0x28]
mov ebp, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x2c], edi
mov edx, dword [ecx + 0x20]
xor ecx, ecx
mov dword [esp + 0x28], edi
test edx, edx
jle 0x4c3754
mov dword [esp + 0x28], edi
xor ebx, ebx
mov dword [esp + 0x34], eax
mov edi, eax
movzx eax, word [ebp]
cmp eax, esi
je 0x4c3748
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x24]
lea ebp, [edi + eax*2]
lea eax, [ebx + 1]
mov edi, ebp
mov dword [esp + 0x2c], eax
mov ecx, eax
mov ebx, eax
cmp eax, edx
jl 0x4c3722
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x38]
cmp ecx, edx
jge 0x4c381f
mov ecx, dword [esp + 0x174]
mov esi, ebp
cmp ebp, eax
jbe 0x4c37c2
nop dword [eax]
mov eax, dword [ecx + 0x24]
lea ecx, [ebp + 2]
neg eax
lea esi, [esi + eax*2]
lea edx, [esi + 2]
call fcn.004cc570
test eax, eax
jne 0x4c3833
movzx eax, word [esi]
lea ecx, [eax + eax]
cmp ecx, dword [esp + 0x170]
jge 0x4c37ae
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x4c3840
mov ecx, dword [esp + 0x174]
xor edx, edx
mov dword [esp + 0x28], edx
cmp esi, dword [ecx + 0x28]
ja 0x4c3770
xor edi, edi
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x2c], eax
cmp eax, dword [ecx + 0x20]
jge 0x4c381f
lea esi, [ebp + 2]
mov eax, dword [ecx + 0x24]
mov ecx, esi
lea ebp, [ebp + eax*2]
lea edx, [ebp + 2]
call fcn.004cc570
test eax, eax
jne 0x4c381f
movzx eax, word [ebp]
lea ecx, [eax + eax]
cmp ecx, dword [esp + 0x170]
jge 0x4c3808
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x4c3840
mov eax, dword [esp + 0x2c]
xor edi, edi
mov ecx, dword [esp + 0x174]
inc eax
mov dword [esp + 0x2c], eax
cmp eax, dword [ecx + 0x20]
jl 0x4c37d3
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx eax, word [eax + 2]
lea eax, [ecx + eax*2]
jmp 0x4c39de
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x174]
jmp 0x4c37c2
mov ecx, dword [esp + 0x14]
mov eax, 2
mov edi, 1
lea eax, [ecx + eax*2]
jmp 0x4c39de
mov eax, dword [ebp + 0xa8]
test eax, eax
jne 0x4c386c
movzx eax, word [esi + 2]
lea eax, [esi + eax*2]
jmp 0x4c39e8
movzx edx, word [esi + 6]
cmp edx, 0xffff
je 0x4c39d1
cmp edx, dword [eax + 4]
je 0x4c39d1
xor edi, edi
cmp ecx, 0x8a
jne 0x4c39cb
mov ecx, dword [esp + 0x174]
mov eax, dword [ebp + 0x28]
mov ebp, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x34], eax
mov esi, dword [ecx + 0x20]
xor ecx, ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0x28], edi
test esi, esi
jle 0x4c38fa
mov dword [esp + 0x28], edi
xor ebx, ebx
mov dword [esp + 0x34], eax
mov edi, eax
movzx eax, word [ebp]
cmp eax, edx
je 0x4c38ea
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x24]
lea ebp, [edi + eax*2]
lea eax, [ebx + 1]
mov edi, ebp
mov dword [esp + 0x38], eax
mov ecx, eax
mov ebx, eax
cmp eax, esi
jl 0x4c38c4
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x34], ebp
cmp ecx, esi
jge 0x4c39c7
cmp ebp, eax
jbe 0x4c3957
mov ebx, dword [esp + 0x28]
lea edi, [ebp + 2]
mov esi, ebp
mov ebp, dword [esp + 0x174]
mov eax, dword [ebp + 0x24]
mov ecx, edi
add eax, eax
sub esi, eax
lea edx, [esi + 2]
call fcn.004cc570
test eax, eax
jne 0x4c3943
mov eax, dword [ebp + 0xa8]
xor ebx, ebx
movzx ecx, word [esi]
cmp ecx, dword [eax + 4]
sete bl
je 0x4c3943
cmp esi, dword [ebp + 0x28]
ja 0x4c3916
mov ebp, dword [esp + 0x34]
test ebx, ebx
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x18]
jne 0x4c39b9
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x174]
mov esi, dword [esp + 0x38]
inc esi
cmp esi, dword [edx + 0x20]
jge 0x4c39c7
mov ebx, dword [esp + 0x28]
lea edi, [ebp + 2]
nop
mov eax, dword [edx + 0x24]
mov ecx, edi
lea edx, [eax*2]
add edx, ebp
mov ebp, edx
add edx, 2
call fcn.004cc570
test eax, eax
jne 0x4c39ad
mov edx, dword [esp + 0x174]
xor ebx, ebx
movzx ecx, word [ebp]
mov eax, dword [edx + 0xa8]
cmp ecx, dword [eax + 4]
sete bl
je 0x4c39ad
inc esi
cmp esi, dword [edx + 0x20]
jl 0x4c3970
mov dword [esp + 0x28], ebx
test ebx, ebx
mov ebx, dword [esp + 0x18]
je 0x4c39c3
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
jmp 0x4c39d6
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
movzx eax, word [esi + 2]
jmp 0x4c39db
mov edi, 1
mov eax, 2
lea eax, [esi + eax*2]
mov ecx, eax
test edi, edi
jne 0x4c8522
mov ebp, dword [esp + 0x174]
mov ecx, eax
mov edi, dword [esp + 0x170]
cmp word [ecx], 0x71
je 0x4c8530
lea esi, [eax + 4]
mov dword [esp + 0x14], esi
jmp 0x4c33b2
movzx edx, word [esi + 2]
mov dword [ebp + 0x94], edx
lea esi, [edx + edx]
cmp esi, dword [ebp + 0x14]
jl 0x4c3a37
mov esi, dword [esp + 0x14]
add esi, 4
mov dword [ebp + 0x40], 1
mov dword [esp + 0x14], esi
jmp 0x4c33b2
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 0x4c3a61
lea edi, [esi + 2]
mov dword [esp + 0x170], edi
mov esi, dword [esp + 0x14]
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x4c33b2
cmp dword [ebp + 0x9c], 1
mov esi, dword [ebp + 0xb0]
jne 0x4c3a91
mov dword [ebp + 0x9c], 0
mov edi, 1
jmp 0x4c3a93
xor edi, edi
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edx, dword [esp + 0x14]
inc eax
push eax
push 0
push ebp
push dword [esp + 0x17c]
lea edx, [edx + 4]
push dword [esp + 0x17c]
call fcn.004c32b0
add esp, 0x14
cmp eax, 1
je 0x4c3afe
cmp eax, 0xfffffc19
je 0x4c3afe
test eax, eax
je 0x4c3ad9
cmp eax, 0xfffffc20
jne 0x4c86d4
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 0x4c3a93
mov esi, dword [esp + 0x14]
jmp 0x4c3b12
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.0x4c4cc6
test edi, edi
jne 0x4c8997
movzx eax, word [esi + 2]
cmp word [esi + eax*2], 0x71
lea esi, [esi + eax*2]
je 0x4c3b24
mov edi, dword [ebp + 0x90]
add esi, 4
mov dword [esp + 0x14], esi
mov dword [esp + 0x170], edi
jmp 0x4c33b2
cmp dword [ebp + 0x9c], 1
mov esi, dword [ebp + 0xb0]
jne 0x4c3b6b
mov dword [ebp + 0x9c], 0
mov edi, 1
jmp 0x4c3b6d
xor edi, edi
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x17c]
lea edx, [ecx + 4]
inc eax
mov ecx, ebx
push eax
push 0
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004c32b0
add esp, 0x14
mov dword [ebp + 0xb0], esi
cmp eax, 1
je case.default.0x4c4cc6
cmp eax, 0xfffffc19
je case.default.0x4c4cc6
cmp eax, 0xfffffc1e
je 0x4c3bf0
cmp eax, 0xfffffc1d
je 0x4c3bf0
cmp eax, 0xfffffc1a
je 0x4c3bf0
test eax, eax
je 0x4c3bd6
cmp eax, 0xfffffc20
jne 0x4c86d4
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 0x4c3b71
mov esi, ecx
jmp 0x4c3c02
mov esi, dword [esp + 0x14]
movzx eax, word [esi + 2]
cmp word [esi + eax*2], 0x71
lea esi, [esi + eax*2]
je 0x4c3bf4
test edi, edi
jne 0x4c8997
mov edi, dword [esp + 0x170]
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x4c33b2
movzx ecx, word [esi + 2]
test ecx, ecx
je 0x4c3c52
mov edx, dword [ebp + 0x78]
add ebx, 0xfffffffe
dec ecx
mov dword [esp + 0x18], ebx
cmp ebx, edx
jb case.default.0x4c4cc6
mov ax, word [ebx]
and ax, word [esp + 0x4c]
cmp ax, word [esp + 0x50]
jne 0x4c3c4e
add ebx, 0xfffffffe
mov dword [esp + 0x18], ebx
test ecx, ecx
jg 0x4c3c28
cmp ebx, dword [ebp + 0x88]
jae 0x4c3c60
mov dword [ebp + 0x88], ebx
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x4c33b2
mov esi, dword [0x4fd2e8]
test esi, esi
je 0x4c3d4a
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.0x4c4cc6
js 0x4c86d4
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x170]
add esi, 0xc
mov dword [esp + 0x14], esi
jmp 0x4c33b2
mov ecx, dword [ebp + 0x74]
movzx eax, word [esi + 2]
lea edi, [ecx + eax*2]
cmp edi, ecx
jne 0x4c3d73
xor ecx, ecx
jmp 0x4c3d77
movzx ecx, word [edi + 4]
mov edx, dword [ebp + 0xa8]
mov eax, edx
test edx, edx
je 0x4c3d97
cmp ecx, dword [eax + 4]
jne 0x4c3d91
cmp ebx, dword [eax + 0x10]
je 0x4c87e6
mov eax, dword [eax]
test eax, eax
jne 0x4c3d83
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 0x4c3dcd
lea ecx, [esp + 0xf0]
mov dword [esp + 0x60], ecx
jmp 0x4c3dec
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 0x4c881c
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 0x4c3e1a
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 + 0x4e37b0]
push dword [esp + 0x17c]
lea edx, [edi + eax*2]
call fcn.004c32b0
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 0x4c3ef6
cmp esi, 0xfffffc19
je 0x4c3ef6
test esi, esi
je 0x4c3ea6
cmp esi, 0xfffffc20
jne 0x4c87f6
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 0x4c3e06
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.0x4c4cc6
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 0x4c3f0f
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 0x4c33ae
movzx eax, word [esi + 2]
cmp word [esi + eax*2], 0x71
lea esi, [esi + eax*2]
je case.0x4c33de.113
mov dword [esp + 0x14], esi
jmp 0x4c33b2
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
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 0x4c3f90
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x4c33b2
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 0x4c3fc0
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c33b2
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 0x4c4010
lea esi, [eax + 4]
mov dword [esp + 0x14], esi
jmp 0x4c33b2
movzx edx, word [esi + 2]
add esi, 2
mov dword [esp + 0x14], esi
mov ebp, 1
mov dword [esp + 0x20], edx
mov dword [esp + 0x38], ebp
cmp edx, 0x80
je 0x4c4058
cmp edx, 0x85
jne 0x4c4238
movzx edx, word [esi + 4]
mov ecx, dword [esp + 0x174]
mov dword [esp + 0x34], edx
lea eax, [edx + edx]
cmp eax, dword [ecx + 0x14]
jge 0x4c4232
mov ebp, esi
lea eax, [edx*8]
sub ebp, dword [ecx + 0x74]
xor edi, edi
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x40], eax
sar ebp, 1
mov esi, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0x28], esi
mov eax, dword [eax + 0x10]
sub eax, edx
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x174]
mov dword [esp + 0x24], eax
mov esi, dword [ecx + 0x94]
nop dword [eax]
mov eax, dword [esp + 0x174]
mov edx, ebx
sub edx, dword [ecx + 0x78]
mov ecx, dword [ecx + 0x10]
sub ecx, dword [esp + 0x34]
mov eax, dword [eax + 0xc]
sar edx, 1
cmp dword [esp + 0x20], 0x82
mov dword [eax + ecx*4], edx
jb 0x4c40f6
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 + 0x4e37b0]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
lea edx, [ecx + eax*2]
mov ecx, ebx
call fcn.004c32b0
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1b
jne 0x4c4172
mov ecx, dword [esp + 0x174]
mov edi, 1
mov eax, dword [ecx + 0x90]
mov ebx, dword [ecx + 0x84]
mov dword [esp + 0x170], eax
mov eax, dword [ecx + 0x74]
mov dword [esp + 0x18], ebx
lea eax, [eax + ebp*2]
mov dword [esp + 0x14], eax
jmp 0x4c40b3
cmp ecx, 0xfffffc20
jne 0x4c41b1
mov edx, dword [esp + 0x14]
movzx eax, word [edx + 2]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x174]
cmp dword [edx + 0x80], eax
jae 0x4c41a4
mov edx, dword [esp + 0x14]
cmp word [edx], 0x71
je 0x4c41b9
cmp word [eax], 0x71
je 0x4c41b9
mov eax, ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
test ecx, ecx
jne 0x4c41a4
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x174]
mov dword [ecx + 0x94], esi
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x71
lea edx, [edx + eax*2]
mov dword [esp + 0x14], edx
je 0x4c40c0
mov ebp, ecx
test edi, edi
jne 0x4c420c
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x28]
mov dword [ecx + eax], edx
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x2c]
mov dword [ecx + eax + 4], edx
mov ecx, dword [ebp + 0x10]
sub ecx, dword [esp + 0x34]
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4], edx
cmp dword [esp + 0x38], 0
jne 0x4c421b
test edi, edi
je case.default.0x4c4cc6
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x170]
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x4c33b2
mov edx, dword [esp + 0x20]
xor ebp, ebp
mov ecx, dword [esp + 0x174]
xor edi, edi
sub esi, dword [ecx + 0x74]
sar esi, 1
cmp edx, 0x82
jb 0x4c4258
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 + 0x4e37b0]
lea edx, [ecx + eax*2]
mov ecx, ebx
call fcn.004c32b0
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1b
jne 0x4c42d2
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 0x4c4246
cmp ecx, 0xfffffc20
jne 0x4c4308
mov edx, dword [esp + 0x14]
movzx eax, word [edx + 2]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x174]
cmp dword [edx + 0x80], eax
jae 0x4c41a4
mov edx, dword [esp + 0x14]
cmp word [edx], 0x71
je 0x4c4310
cmp word [eax], 0x71
jmp 0x4c430a
test ecx, ecx
jne 0x4c41a4
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x71
lea ecx, [ecx + eax*2]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x174]
je 0x4c4246
test edi, edi
jne 0x4c4341
test ebp, ebp
je case.default.0x4c4cc6
mov esi, dword [esp + 0x14]
mov ebp, ecx
mov edi, dword [esp + 0x170]
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x4c33b2
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 0x4c4383
cmp ecx, 0x7b
je 0x4c4383
mov dword [esp + 0x34], 0
jmp 0x4c439c
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 + 0x34], eax
cmp ecx, 0x77
jb 0x4c43aa
cmp ecx, 0x7a
jbe 0x4c8977
cmp ecx, 0x7c
je 0x4c8977
cmp ecx, 0x7f
je 0x4c43da
mov eax, 0x84
cmp cx, ax
je 0x4c43da
mov eax, 0x80
cmp cx, ax
je 0x4c43da
mov eax, 0x85
cmp cx, ax
jne 0x4c44b2
mov edx, dword [esp + 0x174]
movzx edi, word [ebp + 4]
mov eax, dword [edx + 0xa8]
lea esi, [edi + edi]
test eax, eax
je 0x4c43fb
cmp dword [eax + 4], edi
je 0x4c882c
mov dword [edx + 0x94], edi
cmp esi, dword [edx + 0x14]
jl 0x4c4448
mov edi, dword [esp + 0x170]
mov dword [edx + 0x40], 1
mov esi, dword [esp + 0x14]
movzx eax, word [esi]
cmp eax, 0x72
je 0x4c442a
cmp ebx, dword [esp + 0x34]
jne 0x4c857f
add esi, 4
cmp word [ebp], 0x7b
mov dword [esp + 0x14], esi
je 0x4c892d
mov ebp, dword [esp + 0x174]
jmp 0x4c33b2
mov ecx, dword [esp + 0x170]
cmp esi, ecx
jle 0x4c4478
mov eax, dword [edx + 0xc]
lea ecx, [eax + ecx*4]
lea edx, [eax + esi*4]
cmp ecx, edx
jae 0x4c4471
mov eax, ecx
mov dword [ecx], 0xffffffff
lea ecx, [eax + 4]
mov eax, ecx
cmp ecx, edx
jb 0x4c4462
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 0x4c4414
lea edi, [esi + 2]
mov dword [esp + 0x170], edi
jmp 0x4c4414
mov edx, dword [esp + 0x174]
jmp 0x4c4418
cmp dword [ebp + 0x44], 0
je case.0x4c33de.1
cmp ebx, dword [ebp + 0x78]
je case.default.0x4c4cc6
cmp ebx, dword [ebp + 0x78]
jne case.default.0x4c4cc6
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c33b2
cmp dword [ebp + 0x44], 0
je 0x4c44f6
cmp ebx, dword [ebp + 0x78]
je case.default.0x4c4cc6
mov ecx, dword [ebp + 0x78]
jmp 0x4c4501
mov ecx, dword [ebp + 0x78]
cmp ebx, ecx
je case.0x4c4cc6.10
cmp ebx, dword [ebp + 0x7c]
je case.default.0x4c4cc6
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x4c4547
cmp ebx, ecx
jbe 0x4c4531
push 1
lea eax, [ebp + 0x1c]
push eax
push ecx
mov ecx, ebx
call fcn.004cc6c0
add esp, 0xc
test eax, eax
je 0x4c4531
mov eax, 1
jmp 0x4c4533
xor eax, eax
test eax, eax
je case.default.0x4c4cc6
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c33b2
mov esi, dword [ebp + 0x1c]
lea edx, [esi + esi]
lea eax, [edx + ecx]
cmp ebx, eax
jb case.default.0x4c4cc6
mov ecx, ebx
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [ebp + 0x2c]
jne case.default.0x4c4cc6
cmp esi, 1
je 0x4c457c
mov ax, word [ecx + 2]
cmp ax, word [ebp + 0x2e]
jne case.default.0x4c4cc6
mov esi, dword [esp + 0x14]
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c33b2
mov ecx, dword [ebp + 0x98]
mov eax, dword [ebp + 0x78]
lea eax, [eax + ecx*2]
cmp ebx, eax
jne case.default.0x4c4cc6
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c33b2
add esi, 2
mov dword [esp + 0x16c], ebx
mov dword [esp + 0x14], esi
jmp 0x4c33b2
mov ecx, dword [ebp + 0x7c]
cmp ebx, ecx
jae 0x4c4636
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x4c45f6
push 1
lea eax, [ebp + 0x1c]
push eax
push ecx
mov ecx, ebx
call fcn.004cc600
add esp, 0xc
neg eax
sbb eax, eax
neg eax
je case.default.0x4c4cc6
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c33b2
mov edx, dword [ebp + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja case.default.0x4c4cc6
mov ax, word [ebx]
cmp ax, word [ebp + 0x2c]
jne case.default.0x4c4cc6
cmp edx, 1
je case.0x4c4cc6.10
mov ax, word [ebx + 2]
cmp ax, word [ebp + 0x2e]
jne case.default.0x4c4cc6
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c33b2
cmp dword [ebp + 0x48], 0
jne case.default.0x4c4cc6
mov eax, dword [ebp + 0x8c]
test eax, eax
je case.0x4c4cc6.10
cmp ebx, dword [ebp + 0x88]
jbe case.0x4c4cc6.10
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4ca448
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c33b2
cmp dword [ebp + 0x48], 0
jne case.default.0x4c4cc6
cmp dword [ebp + 0x58], 0
je case.0x4c33de.23
cmp ebx, dword [ebp + 0x7c]
jb case.default.0x4c4cc6
mov eax, dword [ebp + 0x8c]
test eax, eax
je case.0x4c4cc6.10
cmp ebx, dword [ebp + 0x88]
jbe case.0x4c4cc6.10
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4ca448
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c33b2
mov ecx, dword [ebp + 0x7c]
cmp ebx, ecx
jae 0x4c4736
mov edx, dword [ebp + 0x18]
lea esi, [ebp + 0x1c]
test edx, edx
je 0x4c46f2
push 1
push esi
push ecx
mov ecx, ebx
call fcn.004cc600
add esp, 0xc
neg eax
sbb eax, eax
neg eax
je case.default.0x4c4cc6
jmp 0x4c4721
mov edx, dword [esi]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja case.default.0x4c4cc6
mov ax, word [ebx]
cmp ax, word [ebp + 0x2c]
jne case.default.0x4c4cc6
cmp edx, 1
je 0x4c4721
mov ax, word [ebx + 2]
cmp ax, word [ebp + 0x2e]
jne case.default.0x4c4cc6
mov ecx, dword [esi]
mov eax, dword [ebp + 0x7c]
add ecx, ecx
sub eax, ecx
cmp ebx, eax
jne case.default.0x4c4cc6
mov esi, dword [esp + 0x14]
mov eax, dword [ebp + 0x8c]
test eax, eax
je case.0x4c4cc6.10
cmp ebx, dword [ebp + 0x88]
jbe case.0x4c4cc6.10
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4ca448
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c33b2
cmp ebx, dword [ebp + 0x78]
jne 0x4c47cd
lea esi, [ebp + 0x88]
xor edi, edi
mov ecx, 0x54
mov eax, ebp
lea edx, [eax + ecx]
cmp ebx, dword [ebp + 0x7c]
jb 0x4c488c
mov eax, dword [ebp + 0x8c]
test eax, eax
je 0x4c47aa
cmp ebx, dword [esi]
jbe 0x4c47aa
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4ca448
xor edx, edx
lea ecx, [edx + 1]
mov esi, dword [esp + 0x14]
movzx eax, word [esi]
add esi, 2
mov dword [esp + 0x14], esi
cmp eax, 5
jne 0x4c4935
xor ecx, edi
jmp 0x4c4939
mov ax, word [ebx - 2]
lea edx, [ebx - 2]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4c47e9
add edx, 0xfffffffe
cmp edx, dword [ebp + 0x88]
lea esi, [ebp + 0x88]
jae 0x4c47f9
mov dword [esi], edx
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c4824
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 0x4c4869
cmp ecx, 0x5f
je 0x4c4882
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4e1170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
mov eax, dword [eax*4 + 0x4e3370]
cmp eax, 1
je 0x4c4882
cmp eax, 3
je 0x4c4882
jmp 0x4c4777
cmp ecx, 0x100
jae 0x4c4777
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
je 0x4c4777
mov edi, 1
jmp 0x4c4779
movzx ecx, word [ebx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c48b7
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 0x4c4910
cmp ecx, 0x5f
jne 0x4c48cb
lea edx, [ecx - 0x5e]
xor ecx, ecx
jmp 0x4c47af
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4e1170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
mov eax, dword [eax*4 + 0x4e3370]
cmp eax, 1
je 0x4c4904
cmp eax, 3
jne 0x4c47aa
mov edx, 1
xor ecx, ecx
jmp 0x4c47af
cmp ecx, 0x100
jae 0x4c47aa
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
je 0x4c47aa
mov edx, 1
xor ecx, ecx
jmp 0x4c47af
mov ecx, edi
xor ecx, edx
test ecx, ecx
jne case.default.0x4c4cc6
mov edi, dword [esp + 0x170]
jmp 0x4c33b2
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x7c]
test edx, edx
je 0x4c4983
cmp ebx, ecx
jae 0x4c4977
push 1
lea eax, [ebp + 0x1c]
push eax
push ecx
mov ecx, ebx
call fcn.004cc600
add esp, 0xc
test eax, eax
je 0x4c4977
mov eax, 1
jmp 0x4c4979
xor eax, eax
test eax, eax
jne case.default.0x4c4cc6
jmp case.0x4c33de.13
mov edx, dword [ebp + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja case.0x4c33de.13
mov ax, word [ebx]
cmp ax, word [ebp + 0x2c]
jne case.0x4c33de.13
cmp edx, 1
je case.default.0x4c4cc6
mov ax, word [ebx + 2]
cmp ax, word [ebp + 0x2e]
je case.default.0x4c4cc6
mov eax, dword [ebp + 0x7c]
cmp ebx, eax
jae 0x4c89a7
add ebx, 2
mov dword [esp + 0x18], ebx
cmp ebx, eax
jae 0x4c49e1
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4c49e1
add ebx, 2
mov dword [esp + 0x18], ebx
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c33b2
cmp ebx, dword [ebp + 0x7c]
jae 0x4c89a7
add ebx, 2
add esi, 2
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], esi
jmp 0x4c33b2
cmp ebx, dword [ebp + 0x7c]
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c4a4a
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.0x4c4cc6.10
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 4
jne case.default.0x4c4cc6
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c33b2
cmp ebx, dword [ebp + 0x7c]
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c4ab0
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.0x4c4cc6
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 4
je case.default.0x4c4cc6
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c33b2
cmp ebx, dword [ebp + 0x7c]
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c4b16
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.0x4c4cc6.10
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 1
jne case.default.0x4c4cc6
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c33b2
cmp ebx, dword [ebp + 0x7c]
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c4b7c
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.0x4c4cc6
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 1
je case.default.0x4c4cc6
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c33b2
cmp ebx, dword [ebp + 0x7c]
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c4be2
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.0x4c4cc6.10
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
jne case.default.0x4c4cc6
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c33b2
cmp ebx, dword [ebp + 0x7c]
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c4c48
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.0x4c4cc6
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
je case.default.0x4c4cc6
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c33b2
mov edx, dword [ebp + 0x7c]
cmp ebx, edx
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c4cb0
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 0x4c4cf2
je case.0x4c4cc6.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4c4cc6
jmp dword [ecx*4 + 0x4cab9c]
cmp ebx, edx
jae case.0x4c4cc6.10
cmp word [ebx], 0xa
jne case.0x4c4cc6.10
add ebx, 2
add esi, 2
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], esi
jmp 0x4c33b2
sub ecx, 0x2028
je case.0x4c4cc6.11
sub ecx, 1
jne case.default.0x4c4cc6
cmp dword [ebp + 0x68], 0
jne case.default.0x4c4cc6
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c33b2
cmp ebx, dword [ebp + 0x7c]
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c4d5a
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 0x4c4db8
je case.default.0x4c4cc6
cmp ecx, 0xa0
ja 0x4c4d94
je case.default.0x4c4cc6
cmp ecx, 9
je case.default.0x4c4cc6
cmp ecx, 0x20
je case.default.0x4c4cc6
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c33b2
cmp ecx, 0x1680
je case.default.0x4c4cc6
cmp ecx, 0x180e
je case.default.0x4c4cc6
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c33b2
cmp ecx, 0x3000
ja case.0x4c4de0.8203
je case.default.0x4c4cc6
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4c4de0.8203
movzx eax, byte [ecx + 0x4cabb4]
jmp dword [eax*4 + 0x4cabac]
cmp ebx, dword [ebp + 0x7c]
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c4e28
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 0x4c4e6c
je case.0x4c4de0.8203
cmp ecx, 0xa0
ja 0x4c4e55
je case.0x4c4de0.8203
cmp ecx, 9
je case.0x4c4de0.8203
cmp ecx, 0x20
jmp 0x4c44d0
cmp ecx, 0x1680
je case.0x4c4de0.8203
cmp ecx, 0x180e
jmp 0x4c44d0
cmp ecx, 0x3000
ja case.default.0x4c4cc6
je case.0x4c4de0.8203
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x4c4cc6
movzx eax, byte [ecx + 0x4cac1c]
jmp dword [eax*4 + 0x4cac14]
cmp ebx, dword [ebp + 0x7c]
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c4edc
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 0x4c4efd
je case.default.0x4c4cc6
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4c4de0.8203
jmp dword [ecx*4 + 0x4cac7c]
sub ecx, 0x2028
je case.default.0x4c4cc6
sub ecx, 1
je case.default.0x4c4cc6
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c33b2
cmp ebx, dword [ebp + 0x7c]
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c4f5f
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 0x4c4f80
je case.0x4c4de0.8203
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4c4cc6
jmp dword [ecx*4 + 0x4cac8c]
sub ecx, 0x2028
je case.0x4c4de0.8203
sub ecx, 1
jmp 0x4c44d0
cmp ebx, dword [ebp + 0x7c]
jae 0x4c89a7
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c4fd5
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 + 0x4e1170]
mov eax, edx
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4d4790]
movzx ecx, word [esi + 2]
cmp ecx, 8
ja case.default.0x4c5000
jmp dword [ecx*4 + 0x4cac9c]
cmp dword [esp + 0x20], 0xf
jmp 0x4c5144
mov al, byte [eax*8 + 0x4e0091]
cmp al, 9
je 0x4c5133
cmp al, 5
je 0x4c5133
cmp al, 8
je 0x4c5133
xor ecx, ecx
jmp 0x4c5138
movzx ecx, byte [eax*8 + 0x4e0091]
xor edx, edx
movzx eax, word [esi + 4]
cmp eax, dword [ecx*4 + 0x4e3370]
setne dl
xor eax, eax
cmp dword [esp + 0x20], 0x10
sete al
cmp edx, eax
jmp 0x4c5144
movzx eax, byte [eax*8 + 0x4e0091]
xor ecx, ecx
cmp word [esi + 4], ax
setne cl
xor eax, eax
cmp dword [esp + 0x20], 0x10
jmp 0x4c513f
movzx eax, byte [eax*8 + 0x4e0090]
xor ecx, ecx
cmp word [esi + 4], ax
setne cl
xor eax, eax
cmp dword [esp + 0x20], 0x10
jmp 0x4c513f
movzx eax, byte [eax*8 + 0x4e0091]
mov eax, dword [eax*4 + 0x4e3370]
cmp eax, 1
je 0x4c5133
cmp eax, 3
je 0x4c5133
xor ecx, ecx
jmp 0x4c5138
movzx eax, byte [eax*8 + 0x4e0091]
cmp dword [eax*4 + 0x4e3370], 6
je 0x4c5133
cmp edx, 9
je 0x4c5133
cmp edx, 0xa
je 0x4c5133
cmp edx, 0xc
je 0x4c5133
cmp edx, 0xd
je 0x4c5133
xor ecx, ecx
jmp 0x4c5138
movzx eax, byte [eax*8 + 0x4e0091]
cmp dword [eax*4 + 0x4e3370], 6
je 0x4c5133
cmp edx, 9
je 0x4c5133
cmp edx, 0xa
je 0x4c5133
cmp edx, 0xb
jmp 0x4c50e0
movzx eax, byte [eax*8 + 0x4e0091]
mov eax, dword [eax*4 + 0x4e3370]
cmp eax, 1
je 0x4c5133
cmp eax, 3
je 0x4c5133
cmp edx, 0x5f
je 0x4c5133
xor ecx, ecx
jmp 0x4c5138
mov ecx, 1
xor eax, eax
cmp dword [esp + 0x20], 0xf
sete al
cmp ecx, eax
je case.default.0x4c4cc6
add esi, 6
mov dword [esp + 0x14], esi
jmp 0x4c33b2
mov esi, dword [ebp + 0x7c]
cmp ebx, esi
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c5199
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 + 0x4e1170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
cmp dword [eax*4 + 0x4e3370], 2
je case.default.0x4c4cc6
cmp ebx, esi
jae 0x4c524e
mov dword [esp + 0x18], ebx
nop word [eax + eax]
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c5215
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 + 0x4e1170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
cmp dword [eax*4 + 0x4e3370], 2
jne 0x4c524a
lea ebx, [ebx + edx*2]
cmp ebx, esi
jb 0x4c51e0
mov dword [esp + 0x18], ebx
mov esi, dword [esp + 0x14]
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4c33b2
movzx eax, word [esi + 2]
xor edx, edx
cmp dword [esp + 0x20], 0x6e
sete dl
add esi, 4
lea ecx, [eax + eax]
mov dword [esp + 0x40], edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x14], esi
cmp ecx, edi
jge 0x4c5294
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + ecx*4]
test esi, esi
js 0x4c5294
mov ebp, dword [eax + ecx*4 + 4]
sub ebp, esi
jmp 0x4c529e
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.0x4c52ba
movzx eax, byte [edi + 0x4cacc8]
jmp dword [eax*4 + 0x4cacc0]
add dword [esp + 0x14], 2
mov eax, edi
movsx esi, byte [edi + 0x4d4348]
and eax, 1
mov dword [esp + 0x34], eax
movsx eax, byte [edi + 0x4d4340]
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4c5319
mov dword [esp + 0x28], closesocket
jmp 0x4c5319
mov edi, dword [esp + 0x14]
xor eax, eax
cmp esi, 0x69
sete al
movzx esi, word [edi + 2]
mov dword [esp + 0x34], eax
movzx eax, word [edi + 4]
test eax, eax
cmove eax, dword [esp + 0x54]
add edi, 6
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x170]
test ebp, ebp
je 0x4c33a7
jns 0x4c5332
test esi, esi
je 0x4c33a7
cmp esi, 1
jl 0x4c536f
mov edi, 1
nop dword [eax]
push edx
push dword [esp + 0x178]
mov edx, ebx
push ebp
call fcn.004c3100
add esp, 0xc
test eax, eax
js 0x4c8de9
mov ecx, dword [esp + 0x38]
lea ebx, [ebx + eax*2]
mov edx, dword [esp + 0x40]
inc edi
mov dword [esp + 0x18], ebx
cmp edi, esi
jle 0x4c5340
mov eax, dword [esp + 0x28]
cmp esi, eax
je 0x4c33a0
cmp dword [esp + 0x34], 0
je 0x4c89f6
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov edi, esi
cmp esi, dword [esp + 0x28]
jge case.default.0x4c4cc6
push dword [esp + 0x40]
mov esi, dword [esp + 0x178]
mov edx, ebx
mov ecx, dword [esp + 0x3c]
push esi
push ebp
call fcn.004c3100
add esp, 0xc
test eax, eax
js 0x4c89d6
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.004c32b0
add esp, 0x14
mov edi, esi
test eax, eax
je 0x4c53c3
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.004c3100
add esp, 0xc
test eax, eax
js 0x4c89d6
mov edi, dword [esp + 0x170]
lea ebx, [ebx + eax*2]
mov dword [esp + 0x18], ebx
mov ebp, esi
jmp 0x4c33ae
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.0x4c5492
movzx eax, byte [ecx + 0x4cacd8]
jmp dword [eax*4 + 0x4cacd0]
movsx eax, byte [ecx + 0x4d4340]
mov edx, ecx
movsx edi, byte [ecx + 0x4d4348]
and edx, 1
add esi, 2
mov dword [esp + 0x2c], edx
test eax, eax
mov ecx, closesocket
cmove eax, ecx
jmp 0x4c54e0
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 + 0x24], edi
cmp edi, esi
jl 0x4c558f
jmp 0x4c550e
mov edi, 1
mov dword [esp + 0x28], 1
mov dword [esp + 0x24], edi
mov esi, edi
mov ecx, dword [esp + 0x174]
cmp ebx, dword [ecx + 0x7c]
jae 0x4c8fca
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c5556
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 0x4c556b
cmp dword [esp + 0x20], 0x6a
je case.default.0x4c4cc6
jmp 0x4c558a
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
test byte [edx + ebp], al
je case.default.0x4c4cc6
mov ecx, dword [esp + 0x174]
inc esi
cmp esi, edi
jle 0x4c5515
mov eax, dword [esp + 0x28]
cmp edi, eax
je 0x4c33a0
cmp dword [esp + 0x2c], 0
je 0x4c8b16
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov esi, edi
cmp esi, dword [esp + 0x28]
jge case.default.0x4c4cc6
mov ecx, dword [esp + 0x174]
cmp ebx, dword [ecx + 0x7c]
jae 0x4c8fca
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c562d
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 0x4c8ab4
cmp dword [esp + 0x20], 0x6a
je case.default.0x4c4cc6
jmp 0x4c8ad3
movzx eax, word [esi + 2]
lea ebp, [esi + 4]
mov dword [esp + 0x3c], ebp
lea esi, [esi + eax*2]
movzx eax, word [esi]
mov dword [esp + 0x14], esi
mov edx, eax
lea ecx, [eax - 0x62]
cmp ecx, 7
ja case.default.0x4c5673
movzx eax, byte [ecx + 0x4cace8]
jmp dword [eax*4 + 0x4cace0]
movsx eax, byte [ecx + 0x4d4340]
mov edx, ecx
movsx edi, byte [ecx + 0x4d4348]
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 0x4c56d3
mov dword [esp + 0x28], closesocket
jmp 0x4c56d3
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 0x4c5761
jmp 0x4c5700
mov edi, 1
mov dword [esp + 0x28], 1
mov esi, edi
nop dword [eax]
nop word [eax + eax]
mov ecx, dword [esp + 0x174]
cmp ebx, dword [ecx + 0x7c]
jae 0x4c8fca
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c5748
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.004cc7b0
add esp, 4
test eax, eax
je case.default.0x4c4cc6
inc esi
cmp esi, edi
jle 0x4c5700
mov eax, dword [esp + 0x28]
cmp edi, eax
je 0x4c33a0
cmp dword [esp + 0x2c], 0
je 0x4c8c90
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov esi, edi
cmp esi, dword [esp + 0x28]
jge case.default.0x4c4cc6
mov ecx, dword [esp + 0x174]
cmp ebx, dword [ecx + 0x7c]
jae 0x4c8fca
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c57ff
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.004cc7b0
add esp, 4
test eax, eax
je case.default.0x4c4cc6
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c57b5
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 0x4c8dce
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.0x4c4cc6
test edx, edx
jg 0x4c5890
jmp 0x4c33ae
cmp ebx, dword [ebp + 0x7c]
jae 0x4c89a7
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 0x4c5900
movzx eax, word [esi]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov edi, 4
add edx, 0x10000
jmp 0x4c5905
mov edi, 2
movzx eax, word [ebx]
cmp edx, 0x80
jae 0x4c5945
mov edi, 0xff
mov ecx, eax
cmp ax, di
ja 0x4c5923
mov eax, dword [ebp + 0x34]
movzx ecx, byte [ecx + eax]
mov eax, dword [ebp + 0x34]
movzx eax, byte [eax + edx]
cmp eax, ecx
jne case.default.0x4c4cc6
mov edi, dword [esp + 0x170]
add ebx, 2
mov dword [esp + 0x18], ebx
jmp 0x4c33b2
mov esi, eax
add ebx, 2
and eax, 0xfc00
mov dword [esp + 0x18], ebx
cmp eax, 0xd800
jne 0x4c597a
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 0x4c33ae
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4e1170]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d4790]
mov eax, dword [eax*8 + 0x4e0094]
add eax, edx
cmp esi, eax
jne case.default.0x4c4cc6
jmp 0x4c33ae
movzx ebp, word [esi + 2]
add esi, 4
mov edi, ebp
jmp 0x4c5a7b
mov dword [esp + 0x28], 1
movzx ebp, word [esi + 2]
xor edi, edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x1c], ebp
cmp ecx, 0x28
je 0x4c59f6
mov dword [esp + 0x2c], edi
cmp ecx, 0x35
jne 0x4c59fe
mov dword [esp + 0x2c], 1
add esi, 4
jmp 0x4c5a83
xor edi, edi
mov dword [esp + 0x28], 1
mov ebp, closesocket
add esi, 2
jmp 0x4c5a7b
mov dword [esp + 0x28], 1
mov edi, 1
mov ebp, closesocket
add esi, 2
jmp 0x4c5a7b
xor edi, edi
mov dword [esp + 0x28], 1
add esi, 2
lea ebp, [edi + 1]
jmp 0x4c5a7b
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 ebp, byte [eax + 0x4d4340]
movsx edi, byte [eax + 0x4d4348]
test ebp, ebp
mov eax, closesocket
cmove ebp, eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x1c], ebp
mov ecx, esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x34], esi
movzx esi, word [esi]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c5e5c
mov eax, ecx
and esi, 0x3ff
shl esi, 0xa
movzx edx, word [eax + 2]
lea eax, [ecx + 4]
and edx, 0x3ff
mov dword [esp + 0x14], eax
or edx, esi
mov esi, 2
add edx, 0x10000
mov dword [esp + 0x40], esi
cmp dword [esp + 0x20], 0x2e
jb 0x4c5b10
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4e1170]
mov eax, edx
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4d4790]
mov ecx, dword [eax*8 + 0x4e0094]
add ecx, edx
cmp ecx, edx
je 0x4c5b10
lea edx, [esp + 0x74]
call fcn.004cc5a0
mov dword [esp + 0x38], eax
jmp 0x4c5b18
mov dword [esp + 0x38], 0
mov ebp, 1
cmp edi, ebp
jl 0x4c5c42
mov eax, dword [esp + 0x174]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x40], esi
mov dword [esp + 0x14], edx
mov ecx, dword [eax + 0x7c]
mov dword [esp + 0x20], ecx
lea eax, [ecx - 4]
mov dword [esp + 0x3c], eax
cmp ebx, eax
ja 0x4c5ba6
mov edx, dword [esp + 0x34]
add esi, esi
mov ecx, ebx
sub esi, 4
jb 0x4c5b68
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4c5b6d
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4c5b57
cmp esi, 0xfffffffc
je 0x4c5b9a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4c5ba2
cmp esi, 0xfffffffd
je 0x4c5b9a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4c5ba2
cmp esi, 0xfffffffe
je 0x4c5b9a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4c5ba2
cmp esi, 0xffffffff
je 0x4c5b9a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4c5ba2
add ebx, 4
jmp 0x4c5c29
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
test edx, edx
jle 0x4c8de9
lea edi, [edx + edx]
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x4c8de9
lea esi, [edx + edx]
mov ecx, ebx
lea edx, [esp + 0x74]
sub esi, 4
jb 0x4c5be1
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4c5be6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4c5bd0
cmp esi, 0xfffffffc
je 0x4c5c23
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4c8de9
cmp esi, 0xfffffffd
je 0x4c5c23
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4c8de9
cmp esi, 0xfffffffe
je 0x4c5c23
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4c8de9
cmp esi, 0xffffffff
je 0x4c5c23
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4c8de9
add ebx, edi
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x3c]
inc ebp
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x18], ebx
cmp ebp, edi
jle 0x4c5b46
mov eax, dword [esp + 0x1c]
cmp edi, eax
je 0x4c33a0
cmp dword [esp + 0x2c], 0
jne 0x4c8e1f
mov ebp, ebx
mov dword [esp + 0x2c], ebp
cmp edi, eax
jge 0x4c5d7e
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x7c]
mov dword [esp + 0x20], eax
lea ebp, [eax - 4]
cmp ebx, ebp
ja 0x4c5cdf
mov edx, dword [esp + 0x34]
add esi, esi
mov ecx, ebx
sub esi, 4
jb 0x4c5ca1
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4c5ca6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4c5c90
cmp esi, 0xfffffffc
je 0x4c5cd3
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4c5cdb
cmp esi, 0xfffffffd
je 0x4c5cd3
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4c5cdb
cmp esi, 0xfffffffe
je 0x4c5cd3
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4c5cdb
cmp esi, 0xffffffff
je 0x4c5cd3
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4c5cdb
add ebx, 4
jmp 0x4c5d5f
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
test ecx, ecx
jle 0x4c5e25
lea edi, [ecx + ecx]
sub eax, edi
cmp ebx, eax
ja 0x4c5e25
lea esi, [ecx + ecx]
mov ecx, ebx
lea edx, [esp + 0x74]
sub esi, 4
jb 0x4c5d17
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4c5d1c
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4c5d06
cmp esi, 0xfffffffc
je 0x4c5d59
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4c5e25
cmp esi, 0xfffffffd
je 0x4c5d59
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4c5e25
cmp esi, 0xfffffffe
je 0x4c5d59
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4c5e25
cmp esi, 0xffffffff
je 0x4c5d59
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4c5e25
add ebx, edi
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
inc edi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], edi
cmp edi, dword [esp + 0x1c]
jl 0x4c5c78
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x174]
cmp dword [esp + 0x28], 0
jne 0x4c33a0
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
cmp ebx, ebp
je case.default.0x4c4cc6
mov ax, word [ebx - 2]
add ebx, 0xfffffffe
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4c5deb
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c5dc7
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 0x4c5e53
cmp ebx, dword [esi + 0x7c]
jb 0x4c5e53
cmp ebx, dword [esi + 0x88]
jbe 0x4c5e53
mov dword [esi + 0x64], 1
cmp eax, 1
jg 0x4ca448
mov ebp, dword [esp + 0x2c]
jmp 0x4c5d85
add ecx, 2
mov dword [esp + 0x14], ecx
cmp edx, 0x2e
jb 0x4c5f7c
mov edx, dword [esp + 0x174]
cmp esi, 0x7f
jbe 0x4c5ea1
mov eax, esi
shr eax, 7
movzx ecx, byte [eax + 0x4e1170]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d4790]
mov ebp, dword [eax*8 + 0x4e0094]
add ebp, esi
jmp 0x4c5ea8
mov eax, dword [edx + 0x38]
movzx ebp, byte [eax + esi]
mov ecx, 1
cmp edi, ecx
jl 0x4c5eeb
mov edx, dword [edx + 0x7c]
mov eax, dword [esp + 0x14]
nop dword [eax + eax]
mov dword [esp + 0x14], eax
cmp ebx, edx
jae 0x4c8fc3
movzx eax, word [ebx]
cmp esi, eax
je 0x4c5edb
cmp ebp, eax
jne case.default.0x4c4cc6
mov eax, dword [esp + 0x14]
add ebx, 2
inc ecx
mov dword [esp + 0x18], ebx
cmp ecx, edi
jle 0x4c5ec0
mov eax, dword [esp + 0x1c]
cmp edi, eax
je 0x4c33a0
cmp dword [esp + 0x2c], 0
jne 0x4c9037
mov edx, dword [esp + 0x24]
mov edi, ebx
cmp edx, eax
jge 0x4c5f33
mov eax, dword [esp + 0x174]
mov ecx, dword [eax + 0x7c]
cmp ebx, ecx
jae 0x4c5f51
movzx eax, word [ebx]
cmp esi, eax
je 0x4c5f25
cmp ebp, eax
jne 0x4c5f33
add ebx, 2
inc edx
mov dword [esp + 0x18], ebx
cmp edx, dword [esp + 0x1c]
jl 0x4c5f16
mov ebp, dword [esp + 0x174]
cmp dword [esp + 0x28], 0
je 0x4c8fdd
mov edi, dword [esp + 0x170]
jmp 0x4c33ae
mov ebp, dword [esp + 0x174]
mov eax, dword [ebp + 0x8c]
test eax, eax
je 0x4c5f3a
cmp ebx, dword [ebp + 0x88]
jbe 0x4c5f3a
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4ca448
jmp 0x4c5f3a
cmp edi, 1
jl 0x4c5fb3
mov eax, dword [esp + 0x174]
mov ecx, 1
mov edx, dword [eax + 0x7c]
cmp ebx, edx
jae 0x4c8fc3
movzx eax, word [ebx]
add ebx, 2
mov dword [esp + 0x18], ebx
cmp esi, eax
jne case.default.0x4c4cc6
inc ecx
cmp ecx, edi
jle 0x4c5f90
mov ecx, dword [esp + 0x14]
cmp edi, ebp
je 0x4c33a0
cmp dword [esp + 0x2c], 0
jne 0x4c9137
mov edx, dword [esp + 0x24]
mov edi, ebx
cmp edx, ebp
jge 0x4c5ff7
mov eax, dword [esp + 0x174]
mov ecx, dword [eax + 0x7c]
nop word [eax + eax]
cmp ebx, ecx
jae 0x4c6015
movzx eax, word [ebx]
cmp esi, eax
jne 0x4c5ff7
add ebx, 2
inc edx
mov dword [esp + 0x18], ebx
cmp edx, ebp
jl 0x4c5fe0
mov ebp, dword [esp + 0x174]
cmp dword [esp + 0x28], 0
je 0x4c90e5
mov edi, dword [esp + 0x170]
jmp 0x4c33ae
mov ebp, dword [esp + 0x174]
mov eax, dword [ebp + 0x8c]
test eax, eax
je 0x4c5ffe
cmp ebx, dword [ebp + 0x88]
jbe 0x4c5ffe
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4ca448
jmp 0x4c5ffe
cmp ebx, dword [ebp + 0x7c]
jae 0x4c89a7
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 0x4c6084
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 0x4c60df
cmp edx, 0x7f
jbe 0x4c60c3
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4e1170]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d4790]
mov eax, dword [eax*8 + 0x4e0094]
add eax, edx
jmp 0x4c60ca
mov eax, dword [ebp + 0x38]
movzx eax, byte [eax + edx]
cmp edx, esi
je case.default.0x4c4cc6
cmp eax, esi
je case.default.0x4c4cc6
jmp 0x4c33ae
mov dword [esp + 0x14], eax
cmp edx, esi
je case.default.0x4c4cc6
jmp 0x4c33ae
movzx eax, word [esi + 2]
lea ecx, [esi + 4]
mov dword [esp + 0x20], eax
mov edi, eax
jmp 0x4c61ba
movzx eax, word [esi + 2]
xor edi, edi
mov dword [esp + 0x20], eax
cmp ecx, 0x42
je 0x4c611a
mov dword [esp + 0x2c], edi
cmp ecx, 0x4f
jne 0x4c6122
mov dword [esp + 0x2c], 1
lea ecx, [esi + 4]
jmp 0x4c61ba
mov dword [esp + 0x28], 1
lea ecx, [esi + 2]
xor edi, edi
jmp 0x4c61b2
mov dword [esp + 0x28], 1
lea ecx, [esi + 2]
mov edi, 1
jmp 0x4c61b2
mov dword [esp + 0x28], 1
lea ecx, [esi + 2]
xor edi, edi
mov dword [esp + 0x20], 1
jmp 0x4c61ba
movzx eax, word [esi + 2]
lea ecx, [esi + 4]
mov dword [esp + 0x28], 1
xor edi, edi
mov dword [esp + 0x20], eax
jmp 0x4c61ba
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 + 0x4d4348]
movsx eax, byte [eax + 0x4d4340]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4c61ba
mov dword [esp + 0x20], closesocket
movzx ebp, word [ecx]
lea esi, [ecx + 2]
cmp edx, 0x48
mov dword [esp + 0x24], ebp
mov dword [esp + 0x14], esi
mov edx, 1
jb 0x4c635b
cmp ebp, 0x7f
jbe 0x4c620d
mov eax, ebp
shr eax, 7
movzx ecx, byte [eax + 0x4e1170]
mov eax, ebp
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4d4790]
mov ecx, dword [esp + 0x174]
mov ebp, dword [eax*8 + 0x4e0094]
add ebp, dword [esp + 0x24]
jmp 0x4c621b
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x38]
movzx ebp, byte [eax + ebp]
mov dword [esp + 0x34], ebp
cmp edi, 1
jl 0x4c6282
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x4c8fc3
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6267
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
add ebx, 2
or ecx, eax
mov dword [esp + 0x18], ebx
add ecx, 0x10000
cmp dword [esp + 0x24], ecx
je case.default.0x4c4cc6
cmp ebp, ecx
je case.default.0x4c4cc6
inc edx
cmp edx, edi
jle 0x4c6227
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
cmp edi, eax
je 0x4c3510
cmp dword [esp + 0x2c], 0
jne 0x4c9287
mov ecx, dword [esp + 0x174]
mov ebp, ebx
cmp edi, eax
jge 0x4c630e
mov esi, dword [ecx + 0x7c]
nop dword [eax]
cmp ebx, esi
jae 0x4c6330
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c62ed
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp dword [esp + 0x24], ecx
je 0x4c6307
cmp dword [esp + 0x34], ecx
je 0x4c6307
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x20]
jl 0x4c62b0
mov ecx, dword [esp + 0x174]
cmp dword [esp + 0x28], 0
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x170]
je 0x4c91fb
mov ebp, dword [esp + 0x174]
jmp 0x4c33b2
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x4c630e
cmp ebx, dword [ecx + 0x88]
jbe 0x4c630e
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x4ca448
jmp 0x4c630e
cmp edi, 1
jl 0x4c63c1
mov ecx, dword [esp + 0x174]
mov esi, dword [ecx + 0x7c]
nop word [eax + eax]
cmp ebx, esi
jae 0x4c8fc3
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c63b0
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
add ebx, 2
or ecx, eax
mov dword [esp + 0x18], ebx
add ecx, 0x10000
cmp ebp, ecx
je case.default.0x4c4cc6
inc edx
cmp edx, edi
jle 0x4c6370
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
cmp edi, eax
je 0x4c3510
cmp dword [esp + 0x2c], 0
jne 0x4c93ef
mov ecx, dword [esp + 0x174]
mov ebp, ebx
cmp edi, eax
jge 0x4c6440
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x4c6462
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6425
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp dword [esp + 0x24], ecx
je 0x4c6439
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x20]
jl 0x4c63e8
mov ecx, dword [esp + 0x174]
cmp dword [esp + 0x28], 0
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x170]
je 0x4c9361
mov ebp, dword [esp + 0x174]
jmp 0x4c33b2
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x4c6440
cmp ebx, dword [ecx + 0x88]
jbe 0x4c6440
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x4ca448
jmp 0x4c6440
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 0x4c6563
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 0x4c6563
xor edi, edi
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], edi
lea ecx, [esi + 2]
jmp 0x4c655b
mov edi, 1
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], edi
lea ecx, [esi + 2]
jmp 0x4c655b
xor edi, edi
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], edi
lea ecx, [esi + 2]
mov dword [esp + 0x24], 1
jmp 0x4c6563
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 0x4c6563
add edx, 0xffffffab
lea ecx, [esi + 2]
mov eax, edx
and edx, 1
mov dword [esp + 0x2c], edx
movsx edi, byte [eax + 0x4d4348]
movsx eax, byte [eax + 0x4d4340]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], eax
test eax, eax
jne 0x4c6563
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 0x4c6584
cmp edx, 0xf
je 0x4c6584
or eax, 0xffffffff
jmp 0x4c65ab
movzx ebp, word [eax + 2]
xor ecx, ecx
cmp edx, 0xf
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x174]
sete cl
mov dword [esp + 0x30], ecx
movzx ecx, word [eax]
add eax, 4
mov dword [esp + 0x14], eax
mov eax, ecx
mov dword [esp + 0x34], eax
test edi, edi
jle 0x4c71ff
test eax, eax
js 0x4c6b08
cmp eax, 8
ja case.default.0x4c5000
jmp dword [eax*4 + 0x4cacf0]
cmp dword [esp + 0x30], 0
jne case.default.0x4c4cc6
mov esi, dword [ebp + 0x7c]
mov edx, 1
mov ecx, ebx
cmp ebx, esi
jae 0x4c89a7
mov ax, word [ebx]
mov ebx, 0xfc00
and ax, bx
xor ebx, ebx
cmp ax, word [esp + 0x48]
sete bl
inc edx
lea ebx, [ebx*2 + 2]
add ebx, ecx
cmp edx, edi
jle 0x4c65e2
mov dword [esp + 0x18], ebx
jmp 0x4c71fb
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6658
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 + 0x4e1170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d4790]
mov al, byte [eax*8 + 0x4e0091]
cmp al, 9
je 0x4c668b
cmp al, 5
je 0x4c668b
cmp al, 8
je 0x4c668b
xor eax, eax
jmp 0x4c6690
mov eax, 1
cmp eax, dword [esp + 0x30]
je case.default.0x4c4cc6
inc edx
cmp edx, edi
jle 0x4c6620
mov dword [esp + 0x18], ebx
jmp 0x4c71fb
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c66e8
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 + 0x44]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x4e1170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
cmp dword [eax*4 + 0x4e3370], ebp
mov ebp, dword [esp + 0x174]
sete cl
cmp ecx, dword [esp + 0x30]
je case.default.0x4c4cc6
inc edx
cmp edx, edi
jle 0x4c66b0
mov dword [esp + 0x18], ebx
jmp 0x4c71fb
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c677f
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 + 0x4e1170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
cmp eax, dword [esp + 0x44]
sete cl
cmp ecx, dword [esp + 0x30]
je case.default.0x4c4cc6
inc edx
cmp edx, edi
jle 0x4c6747
mov dword [esp + 0x18], ebx
jmp 0x4c71fb
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c680b
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 + 0x4e1170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0090]
cmp eax, dword [esp + 0x44]
sete cl
cmp ecx, dword [esp + 0x30]
je case.default.0x4c4cc6
inc edx
cmp edx, edi
jle 0x4c67d3
mov dword [esp + 0x18], ebx
jmp 0x4c71fb
mov esi, dword [ebp + 0x7c]
mov edx, 1
nop
cmp ebx, esi
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6898
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 + 0x4e1170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
mov eax, dword [eax*4 + 0x4e3370]
cmp eax, 1
je 0x4c68d1
cmp eax, 3
je 0x4c68d1
xor eax, eax
jmp 0x4c68d6
mov eax, 1
cmp eax, dword [esp + 0x30]
je case.default.0x4c4cc6
inc edx
cmp edx, edi
jle 0x4c6860
mov dword [esp + 0x18], ebx
jmp 0x4c71fb
mov edi, dword [ebp + 0x7c]
mov esi, 1
mov ebp, dword [esp + 0x20]
nop
cmp ebx, edi
jae 0x4c8fc3
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6938
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 + 0x4e1170]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
cmp dword [eax*4 + 0x4e3370], 6
je 0x4c6980
cmp edx, 9
je 0x4c6980
cmp edx, 0xa
je 0x4c6980
cmp edx, 0xc
je 0x4c6980
cmp edx, 0xd
je 0x4c6980
xor eax, eax
jmp 0x4c6985
mov eax, 1
cmp eax, dword [esp + 0x30]
je case.default.0x4c4cc6
inc esi
cmp esi, ebp
jle 0x4c6900
mov edi, dword [esp + 0x20]
mov dword [esp + 0x18], ebx
jmp 0x4c71fb
mov edi, dword [ebp + 0x7c]
mov esi, 1
mov ebp, dword [esp + 0x20]
cmp ebx, edi
jae 0x4c8fc3
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c69e9
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 + 0x4e1170]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
cmp dword [eax*4 + 0x4e3370], 6
je 0x4c6a36
cmp edx, 9
je 0x4c6a36
cmp edx, 0xa
je 0x4c6a36
cmp edx, 0xb
je 0x4c6a36
cmp edx, 0xc
je 0x4c6a36
cmp edx, 0xd
je 0x4c6a36
xor eax, eax
jmp 0x4c6a3b
mov eax, 1
cmp eax, dword [esp + 0x30]
je case.default.0x4c4cc6
inc esi
cmp esi, ebp
jle 0x4c69b1
mov edi, dword [esp + 0x20]
mov dword [esp + 0x18], ebx
jmp 0x4c71fb
mov edi, dword [ebp + 0x7c]
mov esi, 1
mov ebp, dword [esp + 0x20]
cmp ebx, edi
jae 0x4c8fc3
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
mov dword [esp + 0x18], ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6aa7
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 + 0x4e1170]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
mov eax, dword [eax*4 + 0x4e3370]
cmp eax, 1
je 0x4c6ae7
cmp eax, 3
je 0x4c6ae7
cmp edx, 0x5f
je 0x4c6ae7
xor eax, eax
jmp 0x4c6aec
mov eax, 1
cmp eax, dword [esp + 0x30]
je case.default.0x4c4cc6
inc esi
cmp esi, ebp
jle 0x4c6a67
mov edi, dword [esp + 0x20]
jmp 0x4c71fb
cmp edx, 0x16
jne 0x4c6c17
mov ebp, dword [ebp + 0x7c]
lea edi, [edx - 0x15]
cmp ebx, ebp
jae 0x4c8fc3
movzx ecx, word [ebx]
lea edx, [ebx + 2]
mov eax, ecx
mov ebx, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6b51
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 + 0x4e1170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
cmp dword [eax*4 + 0x4e3370], 2
je case.default.0x4c4cc6
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x4c6bff
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6bca
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 + 0x4e1170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
cmp dword [eax*4 + 0x4e3370], 2
jne 0x4c6bff
lea ebx, [ebx + edx*2]
cmp ebx, esi
jb 0x4c6b95
inc edi
cmp edi, dword [esp + 0x20]
jle 0x4c6b17
mov edi, dword [esp + 0x20]
mov dword [esp + 0x18], ebx
jmp 0x4c71fb
lea eax, [esi - 6]
cmp eax, 0xf
ja case.default.0x4c5000
jmp dword [eax*4 + 0x4cad14]
mov esi, 1
nop
mov ecx, dword [ebp + 0x7c]
cmp ebx, ecx
jae 0x4c89a7
mov edx, dword [ebp + 0x18]
lea eax, [ebp + 0x1c]
test edx, edx
je 0x4c6c61
push 1
push eax
push ecx
mov ecx, ebx
call fcn.004cc600
add esp, 0xc
neg eax
sbb eax, eax
neg eax
jne case.default.0x4c4cc6
jmp 0x4c6c8c
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja 0x4c6c8c
mov ax, word [ebx]
cmp ax, word [ebp + 0x2c]
jne 0x4c6c8c
cmp edx, 1
je case.default.0x4c4cc6
mov ax, word [ebx + 2]
cmp ax, word [ebp + 0x2e]
je case.default.0x4c4cc6
add ebx, 2
cmp ebx, dword [ebp + 0x7c]
jae 0x4c6cac
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4c6cac
add ebx, 2
inc esi
cmp esi, edi
jle 0x4c6c30
mov dword [esp + 0x18], ebx
jmp 0x4c71fb
mov edx, dword [ebp + 0x7c]
mov ecx, 1
cmp ebx, edx
jae 0x4c89a7
add ebx, 2
cmp ebx, edx
jae 0x4c6ce7
mov ax, word [ebx]
and ax, word [esp + 0x4c]
cmp ax, word [esp + 0x50]
jne 0x4c6ce7
add ebx, 2
inc ecx
cmp ecx, edi
jle 0x4c6cc6
mov dword [esp + 0x18], ebx
jmp 0x4c71ff
mov eax, dword [ebp + 0x7c]
lea ecx, [edi + edi]
sub eax, ecx
cmp ebx, eax
ja case.default.0x4c4cc6
add ebx, ecx
mov dword [esp + 0x18], ebx
jmp 0x4c71ff
mov edi, dword [ebp + 0x7c]
mov esi, 1
cmp ebx, edi
jae 0x4c89a7
movzx ecx, word [ebx]
lea edx, [ebx + 2]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6d50
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 0x4c6d82
je case.0x4c6d66.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4c4cc6
jmp dword [ecx*4 + 0x4cad54]
mov ebx, edx
cmp edx, edi
jae 0x4c6d9f
cmp word [edx], 0xa
jne 0x4c6d9f
lea ebx, [edx + 2]
jmp 0x4c6d9f
mov ebx, edx
jmp 0x4c6d9f
sub ecx, 0x2028
je case.0x4c6d66.11
sub ecx, 1
jne case.default.0x4c4cc6
cmp dword [ebp + 0x68], 0
mov ebx, edx
jne case.default.0x4c4cc6
inc esi
cmp esi, dword [esp + 0x20]
jle 0x4c6d18
mov edi, dword [esp + 0x20]
mov dword [esp + 0x18], ebx
jmp 0x4c71fb
mov esi, dword [ebp + 0x7c]
mov edx, 1
nop
cmp ebx, esi
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6df8
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 0x4c6e4e
je case.default.0x4c4cc6
cmp ecx, 0xa0
ja 0x4c6e34
je case.default.0x4c4cc6
cmp ecx, 9
je case.default.0x4c4cc6
cmp ecx, 0x20
je case.default.0x4c4cc6
inc edx
cmp edx, edi
jle 0x4c6dc0
mov dword [esp + 0x18], ebx
jmp 0x4c71fb
cmp ecx, 0x1680
je case.default.0x4c4cc6
cmp ecx, 0x180e
je case.default.0x4c4cc6
jmp case.0x4c6e6e.8203
cmp ecx, 0x3000
ja case.0x4c6e6e.8203
je case.default.0x4c4cc6
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4c6e6e.8203
movzx eax, byte [ecx + 0x4cad6c]
jmp dword [eax*4 + 0x4cad64]
mov esi, dword [ebp + 0x7c]
mov edx, 1
nop dword [eax]
cmp ebx, esi
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6eb8
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 0x4c6efe
je case.0x4c6f22.8193
cmp ecx, 0xa0
ja 0x4c6ee8
je case.0x4c6f22.8193
cmp ecx, 9
je case.0x4c6f22.8193
cmp ecx, 0x20
jne case.default.0x4c4cc6
inc edx
cmp edx, edi
jle 0x4c6e80
mov dword [esp + 0x18], ebx
jmp 0x4c71fb
cmp ecx, 0x1680
je case.0x4c6f22.8193
cmp ecx, 0x180e
jne case.default.0x4c4cc6
jmp case.0x4c6f22.8193
cmp ecx, 0x3000
ja case.default.0x4c4cc6
je case.0x4c6f22.8193
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x4c4cc6
movzx eax, byte [ecx + 0x4cadd4]
jmp dword [eax*4 + 0x4cadcc]
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6f69
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 0x4c6f86
je case.default.0x4c4cc6
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4c6f7f
jmp dword [ecx*4 + 0x4cae34]
sub ecx, 0x2028
je case.default.0x4c4cc6
sub ecx, 1
je case.default.0x4c4cc6
inc edx
cmp edx, edi
jle 0x4c6f31
mov dword [esp + 0x18], ebx
jmp 0x4c71fb
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c6fe9
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 0x4c7006
je case.0x4c6fff.10
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4c4cc6
jmp dword [ecx*4 + 0x4cae44]
sub ecx, 0x2028
je case.0x4c6fff.10
sub ecx, 1
jne case.default.0x4c4cc6
inc edx
cmp edx, edi
jle 0x4c6fb1
mov dword [esp + 0x18], ebx
jmp 0x4c71fb
mov esi, dword [ebp + 0x7c]
mov edx, 1
nop dword [eax]
cmp ebx, esi
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c7068
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 0x4c707d
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 4
jne case.default.0x4c4cc6
inc edx
cmp edx, edi
jle 0x4c7030
mov dword [esp + 0x18], ebx
jmp 0x4c71fb
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c89a7
movzx eax, word [ebx]
mov ecx, 0x80
cmp ax, cx
jae case.default.0x4c4cc6
mov ecx, eax
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 4
je case.default.0x4c4cc6
inc edx
add ebx, 2
cmp edx, edi
jle 0x4c7093
mov dword [esp + 0x18], ebx
jmp 0x4c71fb
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c89a7
movzx eax, word [ebx]
mov ecx, 0x80
cmp ax, cx
jae 0x4c70f8
mov ecx, eax
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 1
jne case.default.0x4c4cc6
add ebx, 2
cmp ebx, esi
jae 0x4c7117
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4c7117
add ebx, 2
inc edx
cmp edx, edi
jle 0x4c70d4
mov dword [esp + 0x18], ebx
jmp 0x4c71fb
mov esi, dword [ebp + 0x7c]
mov edx, 1
nop dword [eax]
cmp ebx, esi
jae 0x4c89a7
movzx eax, word [ebx]
mov ecx, 0x80
cmp ax, cx
jae case.default.0x4c4cc6
mov ecx, eax
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 1
je case.default.0x4c4cc6
inc edx
add ebx, 2
cmp edx, edi
jle 0x4c7130
mov dword [esp + 0x18], ebx
jmp 0x4c71fb
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c89a7
movzx eax, word [ebx]
mov ecx, 0x80
cmp ax, cx
jae 0x4c7195
mov ecx, eax
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
jne case.default.0x4c4cc6
add ebx, 2
cmp ebx, esi
jae 0x4c71b4
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4c71b4
add ebx, 2
inc edx
cmp edx, edi
jle 0x4c7171
mov dword [esp + 0x18], ebx
jmp 0x4c71fb
mov esi, dword [ebp + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c89a7
movzx eax, word [ebx]
mov ecx, 0x80
cmp ax, cx
jae case.default.0x4c4cc6
mov ecx, eax
mov eax, dword [ebp + 0x3c]
test byte [ecx + eax], 0x10
je case.default.0x4c4cc6
add ebx, 2
inc edx
mov dword [esp + 0x18], ebx
cmp edx, edi
jle 0x4c71c7
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
cmp edi, edx
je 0x4c33a0
cmp dword [esp + 0x2c], 0
mov eax, dword [esp + 0x34]
jne 0x4c958f
mov ebp, ebx
mov dword [esp + 0x3c], ebp
test eax, eax
js 0x4c78cb
cmp eax, 8
ja case.default.0x4c5000
jmp dword [eax*4 + 0x4cae54]
mov ecx, dword [esp + 0x174]
cmp edi, edx
jge 0x4c78a9
mov edx, dword [ecx + 0x7c]
mov esi, 0xd800
nop
cmp ebx, edx
jae 0x4c728b
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
cmp dword [esp + 0x30], 0
movzx ecx, ax
jne 0x4c78a2
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 0x4c7250
jmp 0x4c78a2
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x4c78a9
cmp ebx, dword [ecx + 0x88]
jbe 0x4c78a9
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x4ca448
jmp 0x4c78a9
cmp edi, edx
jge 0x4c78a2
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c7369
movzx ecx, word [ebx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c7310
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 + 0x4e1170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d4790]
mov al, byte [eax*8 + 0x4e0091]
cmp al, 9
je 0x4c7343
cmp al, 5
je 0x4c7343
cmp al, 8
je 0x4c7343
xor eax, eax
jmp 0x4c7348
mov eax, 1
cmp eax, dword [esp + 0x30]
je 0x4c78a2
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c72d3
jmp 0x4c78a2
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x4c78a9
cmp ebx, dword [ecx + 0x88]
jbe 0x4c78a9
mov dword [ecx + 0x64], edx
cmp eax, 1
jg 0x4ca448
jmp 0x4c78a9
cmp edi, edx
jge 0x4c78a2
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
nop dword [eax]
cmp ebx, esi
jae 0x4c728b
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c73ed
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 + 0x44]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x4e1170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
cmp dword [eax*4 + 0x4e3370], ebp
mov ebp, dword [esp + 0x3c]
sete cl
cmp ecx, dword [esp + 0x30]
je 0x4c78a2
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c73b0
jmp 0x4c78a2
cmp edi, edx
jge 0x4c78a2
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x4c728b
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c7495
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 + 0x4e1170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
cmp eax, dword [esp + 0x44]
sete cl
cmp ecx, dword [esp + 0x30]
je 0x4c78a2
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c7458
jmp 0x4c78a2
cmp edi, edx
jge 0x4c78a2
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x4c728b
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c7532
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 + 0x4e1170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0090]
cmp eax, dword [esp + 0x44]
sete cl
cmp ecx, dword [esp + 0x30]
je 0x4c78a2
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c74f5
jmp 0x4c78a2
cmp edi, edx
jge 0x4c78a2
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
mov edx, 1
cmp ebx, esi
jae 0x4c7369
movzx ecx, word [ebx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c75cf
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 + 0x4e1170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
mov eax, dword [eax*4 + 0x4e3370]
cmp eax, 1
je 0x4c7608
cmp eax, 3
je 0x4c7608
xor eax, eax
jmp 0x4c760d
mov eax, 1
cmp eax, dword [esp + 0x30]
je 0x4c78a2
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c7592
jmp 0x4c78a2
cmp edi, edx
jge 0x4c78a2
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
mov esi, 1
cmp ebx, edi
jae 0x4c76f3
movzx edx, word [ebx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c767d
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 + 0x4e1170]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
cmp dword [eax*4 + 0x4e3370], 6
je 0x4c76c5
cmp edx, 9
je 0x4c76c5
cmp edx, 0xa
je 0x4c76c5
cmp edx, 0xc
je 0x4c76c5
cmp edx, 0xd
je 0x4c76c5
xor eax, eax
jmp 0x4c76ca
mov eax, 1
cmp eax, dword [esp + 0x30]
je 0x4c78a2
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 0x4c7640
jmp 0x4c78a2
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x4c78a9
cmp ebx, dword [ecx + 0x88]
jbe 0x4c78a9
mov dword [ecx + 0x64], esi
cmp eax, 1
jg 0x4ca448
jmp 0x4c78a9
cmp edi, edx
jge 0x4c78a2
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
mov esi, 1
cmp ebx, edi
jae 0x4c76f3
movzx edx, word [ebx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c7770
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 + 0x4e1170]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
cmp dword [eax*4 + 0x4e3370], 6
je 0x4c77bd
cmp edx, 9
je 0x4c77bd
cmp edx, 0xa
je 0x4c77bd
cmp edx, 0xb
je 0x4c77bd
cmp edx, 0xc
je 0x4c77bd
cmp edx, 0xd
je 0x4c77bd
xor eax, eax
jmp 0x4c77c2
mov eax, 1
cmp eax, dword [esp + 0x30]
je 0x4c78a2
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 0x4c7737
jmp 0x4c78a2
cmp edi, edx
jge 0x4c78a2
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
nop dword [eax]
mov esi, 1
cmp ebx, edi
jae 0x4c76f3
movzx edx, word [ebx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c783d
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 + 0x4e1170]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
mov eax, dword [eax*4 + 0x4e3370]
cmp eax, 1
je 0x4c787d
cmp eax, 3
je 0x4c787d
cmp edx, 0x5f
je 0x4c787d
xor eax, eax
jmp 0x4c7882
mov eax, 1
cmp eax, dword [esp + 0x30]
je 0x4c78a2
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 0x4c7800
mov ecx, dword [esp + 0x174]
cmp dword [esp + 0x28], 0
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x170]
je 0x4c94c5
mov ebp, dword [esp + 0x174]
jmp 0x4c33b2
cmp esi, 0x16
jne 0x4c7ae9
mov esi, dword [esp + 0x174]
cmp edi, edx
jge 0x4c7a1c
mov edi, dword [esi + 0x7c]
cmp ebx, edi
jae 0x4c79fa
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c7923
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 + 0x4e1170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
cmp dword [eax*4 + 0x4e3370], 2
je 0x4c7a1c
mov esi, dword [esi + 0x7c]
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp ebx, esi
jae 0x4c79de
nop word [eax + eax]
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c79a5
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 + 0x4e1170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
cmp dword [eax*4 + 0x4e3370], 2
jne 0x4c79da
lea ebx, [ebx + edx*2]
cmp ebx, esi
jb 0x4c7970
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 0x4c78e6
jmp 0x4c7a1c
mov eax, dword [esi + 0x8c]
test eax, eax
je 0x4c7a1c
cmp ebx, dword [esi + 0x88]
jbe 0x4c7a1c
mov dword [esi + 0x64], 1
cmp eax, 1
jg 0x4ca448
cmp dword [esp + 0x28], 0
jne 0x4c33a0
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
nop
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, ebp
je case.default.0x4c4cc6
movzx eax, word [ebx]
mov edx, ebx
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x4c7a87
movzx ecx, word [edx - 2]
lea ebx, [edx - 2]
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c7ab2
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 + 0x4e1170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
cmp dword [eax*4 + 0x4e3370], 2
jne 0x4c9551
sub ebx, 2
jmp 0x4c7a6d
lea eax, [esi - 6]
cmp eax, 0xf
ja case.default.0x4c5000
jmp dword [eax*4 + 0x4cae78]
cmp edx, 0x7fffffff
jge 0x4c7bef
cmp edi, edx
jge 0x4c7e39
mov eax, dword [esp + 0x174]
nop word [eax + eax]
mov ecx, dword [eax + 0x7c]
cmp ebx, ecx
jae 0x4c7bc9
mov edx, dword [eax + 0x18]
add eax, 0x1c
test edx, edx
je 0x4c7b51
push 1
push eax
push ecx
mov ecx, ebx
call fcn.004cc600
add esp, 0xc
neg eax
sbb eax, eax
neg eax
jne 0x4c7e39
jmp 0x4c7b83
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja 0x4c7b83
mov ecx, dword [esp + 0x174]
mov ax, word [ebx]
cmp ax, word [ecx + 0x2c]
jne 0x4c7b83
cmp edx, 1
je 0x4c7e39
mov ax, word [ebx + 2]
cmp ax, word [ecx + 0x2e]
je 0x4c7e39
mov eax, dword [esp + 0x174]
add ebx, 2
mov dword [esp + 0x18], ebx
cmp ebx, dword [eax + 0x7c]
jae 0x4c7bb9
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [esp + 0x174]
jne 0x4c7bb9
add ebx, 2
mov dword [esp + 0x18], ebx
inc edi
cmp edi, dword [esp + 0x24]
jl 0x4c7b20
jmp 0x4c7e39
mov eax, dword [eax + 0x8c]
test eax, eax
je 0x4c7e39
mov ecx, dword [esp + 0x174]
cmp ebx, dword [ecx + 0x88]
jbe 0x4c7e39
jmp 0x4c7d20
mov eax, dword [esp + 0x174]
mov ecx, dword [eax + 0x7c]
cmp ebx, ecx
jae 0x4c7bc9
mov edx, dword [eax + 0x18]
add eax, 0x1c
test edx, edx
je 0x4c7c23
push 1
push eax
push ecx
mov ecx, ebx
call fcn.004cc600
add esp, 0xc
neg eax
sbb eax, eax
neg eax
jne 0x4c7e39
jmp 0x4c7c55
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp ebx, ecx
ja 0x4c7c55
mov ecx, dword [esp + 0x174]
mov ax, word [ebx]
cmp ax, word [ecx + 0x2c]
jne 0x4c7c55
cmp edx, 1
je 0x4c7e39
mov ax, word [ebx + 2]
cmp ax, word [ecx + 0x2e]
je 0x4c7e39
mov eax, dword [esp + 0x174]
add ebx, 2
mov dword [esp + 0x18], ebx
cmp ebx, dword [eax + 0x7c]
jae 0x4c7c8b
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [esp + 0x174]
jne 0x4c7c8b
add ebx, 2
mov dword [esp + 0x18], ebx
inc edi
cmp edi, dword [esp + 0x24]
jl 0x4c7bf6
jmp 0x4c7e39
cmp edx, 0x7fffffff
jge 0x4c7cf8
cmp edi, edx
jge 0x4c7e39
mov eax, dword [esp + 0x174]
mov ecx, dword [eax + 0x7c]
nop dword [eax]
cmp ebx, ecx
jae 0x4c7cef
add ebx, 2
mov dword [esp + 0x18], ebx
cmp ebx, ecx
jae 0x4c7ce5
mov ax, word [ebx]
and ax, word [esp + 0x4c]
cmp ax, word [esp + 0x50]
jne 0x4c7ce5
add ebx, 2
mov dword [esp + 0x18], ebx
inc edi
cmp edi, edx
jl 0x4c7cc0
jmp 0x4c7e39
mov ecx, dword [esp + 0x174]
jmp 0x4c7d06
mov ecx, dword [esp + 0x174]
mov ebx, dword [ecx + 0x7c]
mov dword [esp + 0x18], ebx
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x4c7e40
cmp ebx, dword [ecx + 0x88]
jbe 0x4c7e40
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x4ca448
jmp 0x4c7e40
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 0x4c7d65
mov eax, dword [edi + 0x8c]
mov ebx, ecx
mov dword [esp + 0x18], ebx
test eax, eax
je 0x4c7d6c
cmp ecx, dword [edi + 0x88]
mov ecx, edi
jmp 0x4c7d1a
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
mov ecx, edi
jmp 0x4c7e40
cmp edi, edx
jge 0x4c7e39
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x4c7f01
movzx ecx, word [ebx]
lea edx, [ebx + 2]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c7dc1
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, 4
add ecx, 0x10000
jmp 0x4c7dc6
mov eax, 2
cmp ecx, 0xd
jne 0x4c7de8
mov ebx, edx
mov dword [esp + 0x18], ebx
cmp edx, esi
jae 0x4c7e35
cmp word [ebx], 0xa
jne 0x4c7e2a
lea ebx, [edx + 2]
jmp 0x4c7e26
cmp ecx, 0xa
je 0x4c7e24
mov edx, dword [esp + 0x174]
cmp dword [edx + 0x68], 0
jne 0x4c8442
cmp ecx, 0xb
je 0x4c7e24
cmp ecx, 0xc
je 0x4c7e24
cmp ecx, 0x85
je 0x4c7e24
cmp ecx, 0x2028
je 0x4c7e24
cmp ecx, 0x2029
jne 0x4c8442
add ebx, eax
mov dword [esp + 0x18], ebx
inc edi
cmp edi, dword [esp + 0x24]
jl 0x4c7d85
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x174]
cmp dword [esp + 0x28], 0
jne 0x4c33a0
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
lea ecx, [ebx - 2]
cmp ebx, ebp
je case.default.0x4c4cc6
mov ax, word [ecx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4c7ea5
add ecx, 0xfffffffe
mov ebx, ecx
cmp esi, 0x11
jne 0x4c7ec1
cmp ecx, ebp
jbe 0x4c7ec1
cmp word [ecx], 0xa
jne 0x4c7ec1
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c7e82
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 0x4c7f2a
cmp ebx, dword [ecx + 0x88]
jbe 0x4c7f2a
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x4ca448
mov esi, dword [esp + 0x1c]
jmp 0x4c7e40
cmp edi, edx
jge 0x4c7e39
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
nop word [eax + eax]
mov edx, 1
cmp ebx, esi
jae 0x4c8020
movzx ecx, word [ebx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c7f8d
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 0x4c7ff6
je case.0x4c8012.8193
cmp ecx, 0xa0
ja 0x4c7fe6
je case.0x4c8012.8193
cmp ecx, 9
je case.0x4c8012.8193
cmp ecx, 0x20
je case.0x4c8012.8193
xor ecx, ecx
xor eax, eax
cmp dword [esp + 0x1c], 0x12
sete al
cmp ecx, eax
je 0x4c7e35
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c7f50
jmp 0x4c7e35
cmp ecx, 0x1680
je case.0x4c8012.8193
cmp ecx, 0x180e
jmp 0x4c7fb5
cmp ecx, 0x3000
ja case.0x4c8012.8203
je case.0x4c8012.8193
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4c8012.8203
movzx eax, byte [ecx + 0x4caec0]
jmp dword [eax*4 + 0x4caeb8]
mov ecx, 1
jmp 0x4c7fbd
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x4c7f2a
cmp ebx, dword [ecx + 0x88]
jbe 0x4c7f2a
mov dword [ecx + 0x64], edx
cmp eax, 1
jg 0x4ca448
mov esi, dword [esp + 0x1c]
jmp 0x4c7e40
cmp edi, edx
jge 0x4c7e39
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
nop dword [eax + eax]
mov edx, 1
cmp ebx, esi
jae 0x4c8020
movzx ecx, word [ebx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c80a9
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 0x4c80c2
je case.0x4c80bb.10
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4c80bb
jmp dword [ecx*4 + 0x4caf20]
sub ecx, 0x2028
je case.0x4c80bb.10
sub ecx, 1
je case.0x4c80bb.10
xor ecx, ecx
jmp 0x4c80d8
mov ecx, 1
xor eax, eax
cmp dword [esp + 0x1c], 0x14
sete al
cmp ecx, eax
je 0x4c7e35
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c8070
jmp 0x4c7e35
cmp edi, edx
jge 0x4c7e39
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x4c7f01
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c8150
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 0x4c816c
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 4
jne 0x4c7e35
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c8113
jmp 0x4c7e35
cmp edi, edx
jge 0x4c7e39
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x4c7f01
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c81ce
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 0x4c7e35
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 4
je 0x4c7e35
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c8191
jmp 0x4c7e35
cmp edi, edx
jge 0x4c7e39
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x4c7f01
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c8250
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 0x4c826c
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 1
jne 0x4c7e35
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c8213
jmp 0x4c7e35
cmp edi, edx
jge 0x4c7e39
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x4c7f01
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c82ce
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 0x4c7e35
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 1
je 0x4c7e35
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c8291
jmp 0x4c7e35
cmp edi, edx
jge 0x4c7e39
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x4c7f01
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c8350
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 0x4c836c
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 0x10
jne 0x4c7e35
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c8313
jmp 0x4c7e35
cmp edi, edx
jge 0x4c7e39
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
cmp ebx, esi
jae 0x4c8401
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c83ce
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 0x4c7e35
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 0x10
je 0x4c7e35
inc edi
lea ebx, [ebx + edx*2]
mov dword [esp + 0x18], ebx
cmp edi, dword [esp + 0x24]
jl 0x4c8391
jmp 0x4c7e35
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x4c7f2a
cmp ebx, dword [ecx + 0x88]
jbe 0x4c7f2a
mov dword [ecx + 0x64], 1
cmp eax, 1
jle 0x4c7f2a
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov esi, dword [esp + 0x1c]
mov ecx, edx
jmp 0x4c7e40
cmp ecx, 0x74
mov ecx, ebx
jne 0x4c8494
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov esi, ebp
mov ebp, dword [esp + 0x174]
jmp 0x4c86bb
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov ebp, dword [esp + 0x174]
add esi, 4
jmp 0x4c86bb
mov edi, dword [esp + 0x170]
mov eax, dword [ebp + 0x90]
cmp eax, edi
movzx ecx, word [esi + 6]
cmovg edi, eax
add ecx, 2
cmp word [esi + ecx*2], 0x71
mov dword [esp + 0x170], edi
lea ecx, [esi + ecx*2]
jne 0x4c8530
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 0x4c8510
jmp 0x4c8530
mov ebp, dword [esp + 0x174]
mov edi, dword [esp + 0x170]
cmp dword [esp + 0x20], 0x86
lea esi, [ecx + 4]
mov dword [esp + 0x14], esi
jne 0x4c86bf
mov dword [ebp + 0x9c], 2
mov edx, esi
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
push eax
push dword [esp + 0x17c]
push ebp
push edi
push dword [esp + 0x17c]
call fcn.004c32b0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
cmp eax, 0x75
je 0x4c8911
cmp eax, 0x74
jne 0x4c85e4
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
movzx eax, word [ebp]
cmp eax, 0x7b
je 0x4c8890
mov ecx, 0x82
cmp ax, cx
jae 0x4c884f
mov esi, ebp
mov ebp, dword [esp + 0x174]
jmp 0x4c86bb
mov eax, 0x82
cmp word [ebp], ax
jb 0x4c85f9
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.004c32b0
add esp, 0x14
cmp eax, 0xfffffc1c
jne 0x4c863a
mov esi, dword [esp + 0x174]
cmp dword [esi + 0xb8], ebp
jne 0x4c86d4
jmp 0x4c8649
test eax, eax
jne 0x4c86d4
mov esi, dword [esp + 0x174]
mov ecx, dword [esp + 0x14]
add ecx, 4
cmp word [ebp], 0x7b
mov dword [esp + 0x14], ecx
je 0x4c88ce
mov ebp, dword [esp + 0x174]
mov esi, ecx
jmp 0x4c86bf
movzx ebp, word [esi + 4]
mov edi, dword [esp + 0x174]
lea eax, [ebp*2]
cmp eax, dword [edi + 0x14]
jl 0x4ca458
mov ebp, dword [esp + 0x174]
nop
cmp edx, 0x82
jae 0x4c86df
cmp edx, 0x7b
je 0x4c86df
cmp dword [ebp + 0x6c], 0
jne 0x4c86e9
movzx eax, word [esi + 2]
cmp word [esi + eax*2], 0x71
je 0x4c86e9
movzx eax, cx
movzx eax, byte [eax + 0x4e37b0]
lea esi, [esi + eax*2]
mov dword [esp + 0x14], esi
mov eax, dword [ebp]
cmp eax, dword [ebp + 4]
jb 0x4c3351
inc eax
mov dword [ebp], eax
mov eax, 0xfffffff8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov dword [ebp + 0x9c], 2
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edi, dword [esp + 0x14]
inc eax
mov esi, dword [ebp + 0xb0]
push eax
push dword [esp + 0x17c]
movzx eax, word [edi]
push ebp
push dword [esp + 0x17c]
movzx eax, byte [eax + 0x4e37b0]
push dword [esp + 0x17c]
lea edx, [edi + eax*2]
call fcn.004c32b0
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc20
jne 0x4c8758
movzx ecx, word [edi + 2]
lea eax, [edi + ecx*2]
cmp dword [ebp + 0x80], eax
jae 0x4ca603
cmp word [edi], 0x71
je 0x4c8760
cmp word [eax], 0x71
jne 0x4ca603
jmp 0x4c8760
test edx, edx
jne 0x4ca5bc
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.0x4c4cc6
mov edx, dword [esp + 0x20]
mov ecx, 0x71
jmp 0x4c8690
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c87cd
cmp eax, 0xfffffc1d
je 0x4c87cd
cmp eax, 0xfffffc20
jne 0x4c86d4
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 0x4c880f
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.004c32b0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edx, ebp
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push edi
push dword [esp + 0x17c]
call fcn.004c32b0
add esp, 0x14
test eax, eax
je 0x4c895a
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edx, ecx
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
push esi
push edi
push dword [esp + 0x17c]
call fcn.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov dword [esi + 0xb8], ebp
mov eax, 0xfffffc1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov dword [edx + 0x84], ebx
mov eax, 0xfffffc1b
mov dword [edx + 0x90], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, ebx
inc eax
push eax
push dword [esp + 0x17c]
push edx
push edi
push dword [esp + 0x17c]
mov edx, esi
call fcn.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
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.0x4c4cc6
cmp ebx, dword [ebp + 0x88]
jbe case.default.0x4c4cc6
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4ca448
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.0x4c4cc6
cmp ebx, dword [esi + 0x7c]
jb case.default.0x4c4cc6
cmp ebx, dword [esi + 0x88]
jbe case.default.0x4c4cc6
mov dword [esi + 0x64], 1
jmp 0x4c89c0
mov edi, ebx
cmp esi, eax
jge 0x4c8a61
push edx
push dword [esp + 0x178]
mov edx, ebx
push ebp
call fcn.004c3100
add esp, 0xc
test eax, eax
js 0x4c8a2b
mov ecx, dword [esp + 0x38]
lea ebx, [ebx + eax*2]
mov edx, dword [esp + 0x40]
inc esi
cmp esi, dword [esp + 0x28]
jl 0x4c8a00
jmp 0x4c8a59
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x4c8a59
cmp ebx, dword [ecx + 0x7c]
jb 0x4c8a59
cmp ebx, dword [ecx + 0x88]
jbe 0x4c8a59
mov dword [ecx + 0x64], 1
cmp eax, 1
jg 0x4ca448
cmp ebx, edi
jb case.default.0x4c4cc6
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov eax, ebp
neg eax
lea ebx, [ebx + eax*2]
cmp ebx, edi
jae 0x4c8a61
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.0x4c4cc6
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c55e3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ebp, ebx
cmp edi, eax
jge 0x4c8b84
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x28]
mov edi, dword [eax + 0x7c]
nop
cmp ebx, edi
jae 0x4c8c5a
movzx edx, word [ebx]
mov esi, 1
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c8b6d
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 0x4c8c21
cmp dword [esp + 0x20], 0x6a
jne 0x4c8c41
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, ebp
je case.default.0x4c4cc6
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4c8be7
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c8bc2
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 0x4c8b84
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
lea ebx, [ebx + esi*2]
inc eax
mov dword [esp + 0x24], eax
cmp eax, ecx
jl 0x4c8b30
jmp 0x4c8b84
mov esi, dword [esp + 0x174]
mov eax, dword [esi + 0x8c]
test eax, eax
je 0x4c8b8b
cmp ebx, dword [esi + 0x88]
jbe 0x4c8b8b
mov dword [esi + 0x64], 1
cmp eax, 1
jg 0x4ca448
jmp 0x4c8b8b
mov ebp, ebx
cmp edi, eax
jge 0x4c8d01
nop word [eax + eax]
mov esi, dword [esp + 0x174]
cmp ebx, dword [esi + 0x7c]
jae 0x4c8d9f
movzx ecx, word [ebx]
mov esi, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c8ce5
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov edx, dword [esp + 0x3c]
push 1
call fcn.004cc7b0
add esp, 4
test eax, eax
je 0x4c8d01
inc edi
lea ebx, [ebx + esi*2]
cmp edi, dword [esp + 0x28]
jl 0x4c8ca0
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
nop
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, ebp
je case.default.0x4c4cc6
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4c8d65
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c8d40
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esi + 0x8c]
test eax, eax
je 0x4c8d08
cmp ebx, dword [esi + 0x88]
jbe 0x4c8d08
mov dword [esi + 0x64], 1
cmp eax, 1
jg 0x4ca448
jmp 0x4c8d08
mov eax, dword [ebp + 0x8c]
test eax, eax
je case.default.0x4c4cc6
cmp ebx, ecx
jb case.default.0x4c4cc6
jmp 0x4c89b1
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je case.default.0x4c4cc6
cmp ebx, dword [ecx + 0x7c]
jb case.default.0x4c4cc6
cmp ebx, dword [ecx + 0x88]
jbe case.default.0x4c4cc6
mov dword [ecx + 0x64], 1
jmp 0x4c89c0
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov esi, edi
nop dword [eax]
cmp esi, dword [esp + 0x1c]
jge case.default.0x4c4cc6
mov ebp, dword [ebp + 0x7c]
lea eax, [ebp - 4]
cmp ebx, eax
ja 0x4c8edb
mov eax, dword [esp + 0x40]
mov ecx, ebx
mov edx, dword [esp + 0x34]
lea esi, [eax + eax]
sub esi, 4
jb 0x4c8ea1
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4c8ea6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4c8e90
cmp esi, 0xfffffffc
je 0x4c8ed3
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4c8edb
cmp esi, 0xfffffffd
je 0x4c8ed3
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4c8edb
cmp esi, 0xfffffffe
je 0x4c8ed3
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4c8edb
cmp esi, 0xffffffff
je 0x4c8ed3
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4c8edb
add ebx, 4
jmp 0x4c8f59
mov ecx, dword [esp + 0x38]
test ecx, ecx
jle 0x4c8fa7
lea edi, [ecx + ecx]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x4c8fa7
lea esi, [ecx + ecx]
mov ecx, ebx
lea edx, [esp + 0x74]
sub esi, 4
jb 0x4c8f15
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4c8f1a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4c8f04
cmp esi, 0xfffffffc
je 0x4c8f53
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4c8fa7
cmp esi, 0xfffffffd
je 0x4c8f53
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4c8fa7
cmp esi, 0xfffffffe
je 0x4c8f53
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4c8fa7
cmp esi, 0xffffffff
je 0x4c8f53
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4c8fa7
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c8e60
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.0x4c4cc6
cmp ebx, ebp
jmp 0x4c8e01
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x8c]
test eax, eax
je case.default.0x4c4cc6
jmp 0x4c8e07
cmp ebx, edi
jb case.default.0x4c4cc6
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.004c32b0
add esp, 0x14
sub ebx, 2
test eax, eax
jne 0x4c86d4
cmp ebx, edi
jae 0x4c8ff0
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
cmp edi, dword [esp + 0x1c]
jge case.default.0x4c4cc6
mov ecx, dword [esp + 0x174]
cmp ebx, dword [ecx + 0x7c]
jae 0x4c8fca
movzx eax, word [ebx]
cmp esi, eax
je 0x4c909b
cmp ebp, eax
jne case.default.0x4c4cc6
mov eax, dword [esp + 0x24]
add ebx, 2
mov edx, dword [esp + 0x14]
inc eax
mov dword [esp + 0x24], eax
mov edi, eax
mov eax, dword [esp + 0x17c]
inc eax
push eax
push dword [esp + 0x17c]
push ecx
push dword [esp + 0x17c]
mov ecx, ebx
push dword [esp + 0x17c]
call fcn.004c32b0
add esp, 0x14
test eax, eax
je 0x4c9072
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
cmp ebx, edi
jb case.default.0x4c4cc6
nop dword [eax]
mov eax, dword [esp + 0x17c]
mov ecx, ebx
mov edx, dword [esp + 0x14]
inc eax
push eax
push dword [esp + 0x17c]
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004c32b0
add esp, 0x14
sub ebx, 2
test eax, eax
jne 0x4c86d4
cmp ebx, edi
jae 0x4c90f0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov edx, ecx
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov ecx, edi
cmp edi, ebp
jge case.default.0x4c4cc6
mov edx, dword [esp + 0x174]
cmp ebx, dword [edx + 0x7c]
jae 0x4c91d5
movzx eax, word [ebx]
add ebx, 2
cmp esi, eax
jne case.default.0x4c4cc6
mov eax, dword [esp + 0x17c]
lea edi, [ecx + 1]
inc eax
mov ecx, ebx
push eax
push dword [esp + 0x17c]
push edx
push dword [esp + 0x17c]
mov edx, dword [esp + 0x24]
push dword [esp + 0x17c]
call fcn.004c32b0
add esp, 0x14
mov ecx, edi
test eax, eax
je 0x4c9172
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [edx + 0x8c]
test eax, eax
je case.default.0x4c4cc6
cmp ebx, dword [edx + 0x88]
jbe case.default.0x4c4cc6
mov dword [edx + 0x64], 1
jmp 0x4c89c0
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, ebp
je case.default.0x4c4cc6
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4c924d
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c9228
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov esi, edi
cmp esi, dword [esp + 0x20]
jge case.default.0x4c4cc6
mov edx, dword [esp + 0x174]
cmp ebx, dword [edx + 0x7c]
jae 0x4c91d5
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c930c
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ebx, 2
add ecx, 0x10000
cmp dword [esp + 0x24], ecx
je case.default.0x4c4cc6
cmp ebp, ecx
je case.default.0x4c4cc6
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.004c32b0
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 edx, esi
inc eax
push eax
push dword [esp + 0x17c]
push ecx
push edi
push dword [esp + 0x17c]
mov ecx, ebx
call fcn.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
nop
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, ebp
je case.default.0x4c4cc6
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4c93b5
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c9390
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov esi, edi
nop word [eax + eax]
cmp esi, dword [esp + 0x20]
jge case.default.0x4c4cc6
mov edx, dword [esp + 0x174]
cmp ebx, dword [edx + 0x7c]
jae 0x4c91d5
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c947a
movzx eax, word [ebx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ebx, 2
add ecx, 0x10000
cmp ebp, ecx
je case.default.0x4c4cc6
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c9430
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov eax, ebx
add ebx, 0xfffffffe
cmp eax, ebp
je case.default.0x4c4cc6
mov ax, word [ebx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4c9517
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c94f2
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c7a60
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
test eax, eax
js 0x4c9ed5
cmp eax, 8
ja case.default.0x4c5000
jmp dword [eax*4 + 0x4caf30]
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov esi, edi
nop word [eax + eax]
mov ecx, ebx
cmp esi, dword [esp + 0x24]
jge case.default.0x4c4cc6
cmp ebx, dword [ebp + 0x7c]
jae 0x4c89a7
movzx eax, word [ebx]
add ebx, 2
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c961a
lea ebx, [ecx + 4]
cmp dword [esp + 0x30], 0
jne case.default.0x4c4cc6
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c95f0
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov esi, edi
cmp esi, dword [esp + 0x24]
jge case.default.0x4c4cc6
cmp ebx, dword [ebp + 0x7c]
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c96e5
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 + 0x4e1170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d4790]
mov al, byte [eax*8 + 0x4e0091]
cmp al, 9
je 0x4c9718
cmp al, 5
je 0x4c9718
cmp al, 8
je 0x4c9718
xor eax, eax
jmp 0x4c971d
mov eax, 1
cmp eax, dword [esp + 0x30]
je case.default.0x4c4cc6
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c96a2
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov esi, edi
nop dword [eax + eax]
cmp esi, dword [esp + 0x24]
jge case.default.0x4c4cc6
cmp ebx, dword [ebp + 0x7c]
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c97f3
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 + 0x44]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x4e1170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
cmp dword [eax*4 + 0x4e3370], edx
sete cl
cmp ecx, dword [esp + 0x30]
je case.default.0x4c4cc6
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c97b0
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov esi, edi
cmp esi, dword [esp + 0x24]
jge case.default.0x4c4cc6
cmp ebx, dword [ebp + 0x7c]
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c98f5
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 + 0x4e1170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
cmp eax, dword [esp + 0x44]
sete cl
cmp ecx, dword [esp + 0x30]
je case.default.0x4c4cc6
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c98b2
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov esi, edi
nop dword [eax]
cmp esi, dword [esp + 0x24]
jge case.default.0x4c4cc6
cmp ebx, dword [ebp + 0x7c]
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c99f3
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 + 0x4e1170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0090]
cmp eax, dword [esp + 0x44]
sete cl
cmp ecx, dword [esp + 0x30]
je case.default.0x4c4cc6
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c99b0
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov esi, edi
nop dword [eax + eax]
cmp esi, dword [esp + 0x24]
jge case.default.0x4c4cc6
cmp ebx, dword [ebp + 0x7c]
jae 0x4c89a7
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c9af3
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 + 0x4e1170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
mov eax, dword [eax*4 + 0x4e3370]
cmp eax, 1
je 0x4c9b2c
cmp eax, 3
je 0x4c9b2c
xor eax, eax
jmp 0x4c9b31
mov eax, 1
cmp eax, dword [esp + 0x30]
je case.default.0x4c4cc6
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c9ab0
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov esi, edi
nop dword [eax]
cmp esi, dword [esp + 0x24]
jge case.default.0x4c4cc6
cmp ebx, dword [ebp + 0x7c]
jae 0x4c89a7
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c9c03
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 + 0x4e1170]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
cmp dword [eax*4 + 0x4e3370], 6
je 0x4c9c4b
cmp edx, 9
je 0x4c9c4b
cmp edx, 0xa
je 0x4c9c4b
cmp edx, 0xc
je 0x4c9c4b
cmp edx, 0xd
je 0x4c9c4b
xor eax, eax
jmp 0x4c9c50
mov eax, 1
cmp eax, dword [esp + 0x30]
je case.default.0x4c4cc6
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c9bc0
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov esi, edi
nop dword [eax + eax]
cmp esi, dword [esp + 0x24]
jge case.default.0x4c4cc6
cmp ebx, dword [ebp + 0x7c]
jae 0x4c89a7
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c9d23
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 + 0x4e1170]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
cmp dword [eax*4 + 0x4e3370], 6
je 0x4c9d70
cmp edx, 9
je 0x4c9d70
cmp edx, 0xa
je 0x4c9d70
cmp edx, 0xb
je 0x4c9d70
cmp edx, 0xc
je 0x4c9d70
cmp edx, 0xd
je 0x4c9d70
xor eax, eax
jmp 0x4c9d75
mov eax, 1
cmp eax, dword [esp + 0x30]
je case.default.0x4c4cc6
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c9ce0
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.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov esi, edi
cmp esi, dword [esp + 0x24]
jge case.default.0x4c4cc6
cmp ebx, dword [ebp + 0x7c]
jae 0x4c89a7
movzx edx, word [ebx]
add ebx, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c9e43
movzx eax, word [ebx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add ebx, 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4e1170]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
mov eax, dword [eax*4 + 0x4e3370]
cmp eax, 1
je 0x4c9e83
cmp eax, 3
je 0x4c9e83
cmp edx, 0x5f
je 0x4c9e83
xor eax, eax
jmp 0x4c9e88
mov eax, 1
cmp eax, dword [esp + 0x30]
je case.default.0x4c4cc6
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c9e00
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]
cmp esi, 0x16
jne 0x4ca04e
mov ebp, dword [esp + 0x17c]
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov esi, edi
nop dword [eax]
cmp esi, dword [esp + 0x24]
jge case.default.0x4c4cc6
mov esi, dword [ebp + 0x7c]
cmp ebx, esi
jae 0x4c89a7
movzx ecx, word [ebx]
lea edx, [ebx + 2]
mov eax, ecx
mov ebx, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c9f67
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 + 0x4e1170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
cmp dword [eax*4 + 0x4e3370], 2
je case.default.0x4c4cc6
cmp ebx, esi
jae 0x4ca00b
movzx ecx, word [ebx]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4c9fd6
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 + 0x4e1170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4d4790]
movzx eax, byte [eax*8 + 0x4e0091]
cmp dword [eax*4 + 0x4e3370], 2
jne 0x4ca00b
lea ebx, [ebx + edx*2]
cmp ebx, esi
jb 0x4c9fa1
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4c9f20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004c32b0
add esp, 0x14
test eax, eax
jne 0x4c86d4
mov ebp, dword [esp + 0x1c]
mov esi, edi
nop dword [eax]
cmp esi, dword [esp + 0x24]
jge case.default.0x4c4cc6
mov ecx, dword [esp + 0x174]
mov esi, dword [ecx + 0x7c]
cmp ebx, esi
jae 0x4ca41e
mov edx, esi
cmp ebp, 0xc
jne 0x4ca107
mov edx, dword [ecx + 0x18]
add ecx, 0x1c
test edx, edx
je 0x4ca0c9
push 1
push ecx
push esi
mov ecx, ebx
call fcn.004cc600
add esp, 0xc
neg eax
sbb eax, eax
neg eax
jne case.default.0x4c4cc6
jmp 0x4ca0fb
mov ecx, dword [ecx]
lea eax, [ecx + ecx]
sub esi, eax
cmp ebx, esi
ja 0x4ca0fb
mov edx, dword [esp + 0x174]
mov ax, word [ebx]
cmp ax, word [edx + 0x2c]
jne 0x4ca0fb
cmp ecx, 1
je case.default.0x4c4cc6
mov ax, word [ebx + 2]
cmp ax, word [edx + 0x2e]
je case.default.0x4c4cc6
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
mov edx, esi
movzx ecx, word [ebx]
add ebx, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4ca139
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
mov esi, edx
add ecx, 0x10000
add ebx, 2
lea eax, [ebp - 6]
cmp eax, 0xf
ja case.default.0x4c5000
jmp dword [eax*4 + 0x4caf54]
cmp ecx, 0x85
ja 0x4ca183
je case.0x4ca162.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4c4cc6
jmp dword [ecx*4 + 0x4caf94]
cmp ebx, esi
jae case.0x4ca145.12
cmp word [ebx], 0xa
jne case.0x4ca145.12
add ebx, 2
jmp case.0x4ca145.12
sub ecx, 0x2028
je case.0x4ca162.11
sub ecx, 1
jne case.default.0x4c4cc6
mov eax, dword [esp + 0x174]
cmp dword [eax + 0x68], 0
jne case.default.0x4c4cc6
jmp case.0x4ca145.12
cmp ecx, 0x2000
ja 0x4ca1ee
je case.default.0x4c4cc6
cmp ecx, 0xa0
ja 0x4ca1d7
je case.default.0x4c4cc6
cmp ecx, 9
je case.default.0x4c4cc6
cmp ecx, 0x20
jmp 0x4ca3bf
cmp ecx, 0x1680
je case.default.0x4c4cc6
cmp ecx, 0x180e
jmp 0x4ca3bf
cmp ecx, 0x3000
ja case.0x4ca145.12
je case.default.0x4c4cc6
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4ca145.12
movzx eax, byte [ecx + 0x4cafac]
jmp dword [eax*4 + 0x4cafa4]
cmp ecx, 0x2000
ja 0x4ca26d
je case.0x4ca145.12
cmp ecx, 0xa0
ja 0x4ca250
je case.0x4ca145.12
cmp ecx, 9
je case.0x4ca145.12
cmp ecx, 0x20
jne case.default.0x4c4cc6
jmp case.0x4ca145.12
cmp ecx, 0x1680
je case.0x4ca145.12
cmp ecx, 0x180e
jne case.default.0x4c4cc6
jmp case.0x4ca145.12
cmp ecx, 0x3000
ja case.default.0x4c4cc6
je case.0x4ca145.12
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x4c4cc6
movzx eax, byte [ecx + 0x4cb014]
jmp dword [eax*4 + 0x4cb00c]
cmp ecx, 0x85
ja 0x4ca2bd
je case.default.0x4c4cc6
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4ca145.12
jmp dword [ecx*4 + 0x4cb074]
sub ecx, 0x2028
je case.default.0x4c4cc6
sub ecx, 1
jmp 0x4ca3bf
cmp ecx, 0x85
ja 0x4ca2f2
je case.0x4ca145.12
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4c4cc6
jmp dword [ecx*4 + 0x4cb084]
sub ecx, 0x2028
je case.0x4ca145.12
sub ecx, 1
jne case.default.0x4c4cc6
jmp case.0x4ca145.12
cmp ecx, 0x100
jae case.0x4ca145.12
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 4
jne case.default.0x4c4cc6
jmp case.0x4ca145.12
cmp ecx, 0x100
jae case.default.0x4c4cc6
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 4
jmp 0x4ca3bf
cmp ecx, 0x100
jae case.0x4ca145.12
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 1
jne case.default.0x4c4cc6
jmp case.0x4ca145.12
cmp ecx, 0x100
jae case.default.0x4c4cc6
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 1
jmp 0x4ca3bf
cmp ecx, 0x100
jae case.0x4ca145.12
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 0x10
jne case.default.0x4c4cc6
jmp case.0x4ca145.12
cmp ecx, 0x100
jae case.default.0x4c4cc6
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 0x10
je case.default.0x4c4cc6
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.004c32b0
add esp, 0x14
test eax, eax
je 0x4ca080
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, 0xfffffff2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [ecx + 0x8c]
test eax, eax
je case.default.0x4c4cc6
cmp ebx, dword [ecx + 0x88]
jbe case.default.0x4c4cc6
mov dword [ecx + 0x64], 1
cmp eax, 1
jle case.default.0x4c4cc6
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x174]
mov esi, dword [edi + 0x94]
mov eax, dword [ecx + ebp*8]
mov dword [esp + 0x48], eax
mov eax, dword [ecx + ebp*8 + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x10]
mov edi, dword [edi + 0xb0]
sub eax, ebp
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
mov dword [esp + 0x54], eax
mov eax, ebx
sub eax, dword [edx + 0x78]
sar eax, 1
mov dword [ecx], eax
mov ecx, edx
mov edx, dword [esp + 0x20]
cmp edx, 0x82
jb 0x4ca4ac
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 + 0x4e37b0]
lea edx, [ecx + eax*2]
mov ecx, ebx
call fcn.004c32b0
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc1c
je 0x4ca57d
cmp edx, 0xfffffc20
jne 0x4ca539
mov eax, dword [esp + 0x14]
movzx ecx, word [eax + 2]
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x174]
cmp dword [ecx + 0x80], eax
jae 0x4ca5af
mov ecx, dword [esp + 0x14]
cmp word [ecx], 0x71
mov ecx, dword [esp + 0x174]
je 0x4ca535
cmp word [eax], 0x71
jne 0x4ca5af
xor edx, edx
jmp 0x4ca548
test edx, edx
jne 0x4ca5af
mov ecx, dword [esp + 0x174]
mov eax, dword [esp + 0x14]
mov dword [ecx + 0x94], esi
mov ecx, dword [esp + 0x14]
movzx eax, word [eax + 2]
lea ecx, [ecx + eax*2]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x174]
mov eax, dword [esp + 0x14]
mov dword [ecx + 0xb0], edi
cmp word [eax], 0x71
jne 0x4ca584
jmp 0x4ca496
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0xc]
mov ebx, dword [esp + 0x174]
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x54]
mov dword [eax + ebp*8], ecx
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x3c]
mov dword [eax + ebp*8 + 4], ecx
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 0xc]
sub ecx, ebp
mov dword [eax + ecx*4], esi
mov eax, edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
cmp edx, 0xfffffc1c
jne 0x4ca603
movzx eax, word [edi]
mov ecx, eax
cmp eax, 0x7b
je 0x4ca5f8
cmp ecx, 0x71
jne 0x4ca5f0
mov ecx, edi
nop word [eax + eax]
movzx eax, word [edi + 2]
cmp word [ecx + eax*2], 0x71
lea edi, [ecx + eax*2]
mov ecx, edi
je 0x4ca5e0
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 + 0x4e37b0]
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.004c32b0
mov esi, eax
add esp, 0x14
cmp esi, 1
je 0x4ca66e
cmp esi, 0xfffffc19
jne 0x4ca68a
cmp dword [ebp + 0xb0], 0
jne 0x4ca68a
mov dword [ebp + 0xb0], edi
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
cmp esi, 0xfffffc1f
jne 0x4c880f
mov edx, dword [ebp + 0x80]
mov ecx, edi
call fcn.004cc570
test eax, eax
jne 0x4c880f
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 + 0x4e37b0]
push ebp
push edi
push dword [esp + 0x17c]
lea edx, [esi + eax*2]
call fcn.004c32b0
mov ecx, eax
add esp, 0x14
test ecx, ecx
je 0x4ca723
cmp ecx, 0xfffffc1d
je 0x4ca723
cmp ecx, 0xfffffc1e
je 0x4ca723
cmp ecx, 0xfffffc1f
je 0x4ca723
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 + 0x4e37b0]
push ebp
push edi
push dword [esp + 0x17c]
lea edx, [esi + eax*2]
call fcn.004c32b0
add esp, 0x14
test eax, eax
je 0x4ca76f
cmp eax, 0xfffffc20
jne 0x4c86d4
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 + 0x4e37b0]
movzx eax, word [edx + 2]
add ecx, eax
push edi
push dword [esp + 0x17c]
lea edx, [edx + ecx*2]
mov ecx, ebx
call fcn.004c32b0
mov ecx, eax
add esp, 0x14
cmp ecx, 1
je 0x4ca7db
cmp ecx, 0xfffffc19
jne 0x4ca7ea
cmp dword [ebp + 0xb0], 0
jne 0x4ca7ea
mov dword [ebp + 0xb0], esi
test ecx, ecx
je 0x4ca76f
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 + 0x4e37b0]
push ebp
push edi
push dword [esp + 0x17c]
lea edx, [esi + eax*2]
call fcn.004c32b0
add esp, 0x14
test eax, eax
je 0x4ca84a
cmp eax, 0xfffffc1d
je 0x4ca84a
cmp eax, 0xfffffc20
jne 0x4c86d4
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 + 0x4e37b0]
push ebp
push edi
push dword [esp + 0x17c]
lea edx, [esi + eax*2]
call fcn.004c32b0
add esp, 0x14
test eax, eax
je 0x4ca914
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 + 0x4e37b0]
movzx eax, word [edx + 2]
add ecx, eax
push edi
push dword [esp + 0x17c]
lea edx, [edx + ecx*2]
mov ecx, ebx
call fcn.004c32b0
add esp, 0x14
cmp eax, 1
je 0x4ca8f9
cmp eax, 0xfffffc19
jne 0x4ca908
cmp dword [ebp + 0xb0], 0
jne 0x4ca908
mov dword [ebp + 0xb0], esi
test eax, eax
jne 0x4c86d4
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 0x4ca96a
cmp edx, 0x99
je 0x4ca96a
cmp dword [ebp + 0xa8], 0
jne 0x4ca96a
cmp dword [ebp + 0x5c], 0
jne case.default.0x4c4cc6
cmp dword [ebp + 0x60], 0
je 0x4ca96a
mov ecx, dword [ebp + 0x98]
mov eax, dword [ebp + 0x78]
lea eax, [eax + ecx*2]
cmp esi, eax
je case.default.0x4c4cc6
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