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

Disassembly:
sub esp, 0x158
mov dword [esp], edx
push ebx
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x10], esi
push edi
test edx, edx
jne 0x4acdab
cmp dword [esp + 0x17c], edx
jne 0x4acd90
push 1
push edx
push edx
push edx
push edx
lea ecx, [esp + 0x190]
call fcn.004acd50
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
lea eax, [esp + 0x17c]
sub eax, esi
cdq
xor eax, edx
sub eax, edx
neg eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov edi, dword [esp + 0x174]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x34], 0
mov eax, dword [edi]
cmp eax, dword [edi + 4]
jae 0x4b240e
mov dword [esp + 0x64], 0xfc00
mov dword [esp + 0x68], 0xdc00
mov dword [esp + 0x44], connect
mov dword [esp + 0x4c], 0xd800
nop dword [eax]
inc eax
mov dword [edi], eax
mov eax, dword [esp + 0x17c]
cmp eax, dword [edi + 8]
jae 0x4b4581
cmp dword [edi + 0x9c], 2
jne 0x4ace50
mov eax, dword [esp + 0x178]
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x6c]
mov dword [esp + 0x70], esi
mov dword [esp + 0x178], eax
mov dword [edi + 0x9c], 0
jmp 0x4ace50
mov edi, dword [esp + 0x174]
mov edx, dword [esp + 0x10]
jmp 0x4ace57
je case.0x4ace89.151
mov edi, dword [esp + 0x174]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x170]
movzx ecx, word [edx]
mov dword [esp + 0x28], edx
mov ebp, ecx
mov edx, ecx
mov dword [esp + 0x38], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x1c], edx
cmp edx, 0x9b
ja case.0x4ace89.98
movzx eax, byte [edx + 0x4b46dc]
jmp dword [eax*4 + 0x4b4594]
cmp dword [edi + 0x70], 0
movzx ecx, byte [edx + 0x4cc258]
je 0x4b24dc
mov edx, dword [esp + 0x10]
movzx eax, word [edx + 2]
add ecx, eax
lea edx, [edx + ecx*2]
mov dword [esp + 0x10], edx
jmp 0x4ace50
mov edx, dword [esp + 0x10]
mov ebx, esi
mov edi, dword [edi + 0xb0]
mov ebp, edx
mov eax, dword [esp + 0x17c]
add edx, 4
inc eax
mov ecx, esi
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
cmp eax, 1
je 0x4acfc7
cmp eax, 0xfffffc20
jne 0x4acf38
mov edx, dword [esp + 0x10]
movzx ecx, word [edx + 2]
lea ecx, [edx + ecx*2]
mov edx, dword [esp + 0x174]
cmp dword [edx + 0x80], ecx
jae 0x4b2416
mov edx, dword [esp + 0x10]
cmp word [edx], 0x71
je 0x4acf44
cmp word [ecx], 0x71
jne 0x4b2416
jmp 0x4acf44
test eax, eax
jne 0x4b2416
mov edx, dword [esp + 0x10]
movzx eax, word [edx + 2]
lea edx, [edx + eax*2]
mov eax, dword [esp + 0x174]
mov dword [esp + 0x10], edx
mov dword [eax + 0xb0], edi
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x71
je 0x4acec2
mov edi, dword [esp + 0x174]
movzx eax, cx
cmp eax, 0x7c
je 0x4acf82
cmp eax, 0x71
jne case.0x4ace89.151
movzx eax, word [edx + 2]
lea edx, [edx + eax*2]
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x71
je 0x4acf82
mov eax, dword [edi + 0x90]
mov esi, dword [edi + 0x84]
mov dword [esp + 0x10], edx
mov dword [esp + 0x170], eax
mov dword [esp + 0x14], esi
cmp ecx, 0x72
je 0x4acfbb
cmp esi, ebx
jne 0x4b2160
add edx, 4
mov dword [esp + 0x10], edx
jmp 0x4ace50
mov edi, dword [esp + 0x174]
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x80]
movzx ecx, word [edx]
mov dword [esp + 0x16c], eax
jmp 0x4acf71
mov eax, dword [esp + 0x10]
xor ebp, ebp
mov dword [esp + 0x28], ebp
jmp 0x4adb1c
mov ebp, dword [esp + 0x10]
cmp word [ebp + 4], 0x70
movzx edi, word [ebp + 2]
jne 0x4ad0ef
mov ecx, dword [0x4e646c]
test ecx, ecx
je 0x4ad0e8
mov dword [esp + 0xb8], 2
movzx eax, word [ebp + 6]
mov ebp, dword [esp + 0x174]
mov dword [esp + 0xbc], eax
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xc0], eax
mov eax, dword [ebp + 0x78]
mov dword [esp + 0xc4], eax
mov eax, dword [ebp + 0x7c]
sub eax, dword [ebp + 0x78]
sar eax, 1
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x16c]
sub eax, dword [ebp + 0x78]
sar eax, 1
mov dword [esp + 0xcc], eax
mov eax, esi
sub eax, dword [ebp + 0x78]
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 ecx
add esp, 4
test eax, eax
jg case.0x4ace89.151
js 0x4b2416
mov ebp, dword [esp + 0x10]
add ebp, 0xc
mov dword [esp + 0x10], ebp
movzx ecx, word [ebp + 4]
lea edx, [ebp + 4]
cmp ecx, 0x89
je 0x4ad2c3
cmp ecx, 0x8a
je 0x4ad2c3
cmp ecx, 0x87
je 0x4ad18c
cmp ecx, 0x88
je 0x4ad18c
cmp ecx, 0x8b
jne 0x4ad138
movzx eax, word [ebp + 2]
lea ecx, [eax*2]
add ecx, ebp
jmp 0x4ad466
mov ecx, dword [esp + 0x174]
mov dword [ecx + 0x9c], 1
mov eax, dword [esp + 0x17c]
inc eax
push eax
push 0
push ecx
push dword [esp + 0x17c]
mov ecx, esi
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
cmp eax, 1
je 0x4b21e7
test eax, eax
je 0x4ad185
cmp eax, 0xfffffc20
jne 0x4b2416
xor edx, edx
jmp 0x4ad453
movzx edi, word [ebp + 6]
mov ebp, dword [esp + 0x174]
lea edx, [edi + edi]
cmp edx, dword [esp + 0x170]
jge 0x4ad1b0
mov eax, dword [ebp + 0xc]
cmp dword [eax + edx*4], 0
jge 0x4ad445
cmp ecx, 0x88
jne 0x4ad2b4
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x28]
mov ebx, eax
test edx, edx
jle 0x4ad2b4
xor ecx, ecx
mov ebp, eax
mov esi, ecx
movzx eax, word [ebx]
cmp eax, edi
je 0x4ad1f5
mov eax, dword [esp + 0x174]
inc esi
mov ecx, esi
mov eax, dword [eax + 0x24]
lea ebx, [eax*2]
add ebx, ebp
mov ebp, ebx
cmp esi, edx
jl 0x4ad1d2
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x14]
cmp ecx, edx
jge 0x4ad2b4
mov eax, dword [esp + 0x174]
mov edi, ebx
cmp ebx, dword [eax + 0x28]
jbe 0x4ad262
mov eax, dword [eax + 0x24]
lea ecx, [ebx + 2]
neg eax
lea edi, [edi + eax*2]
lea edx, [edi + 2]
call fcn.004b5a80
test eax, eax
jne 0x4ad25b
movzx eax, word [edi]
lea ecx, [eax + eax]
cmp ecx, dword [esp + 0x170]
jge 0x4ad24d
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x4ad445
mov eax, dword [esp + 0x174]
cmp edi, dword [eax + 0x28]
ja 0x4ad213
jmp 0x4ad262
mov eax, dword [esp + 0x174]
mov ebp, dword [esp + 0x2c]
inc ebp
cmp ebp, dword [eax + 0x20]
jge 0x4ad2b4
lea edi, [ebx + 2]
nop
mov eax, dword [eax + 0x24]
mov ecx, edi
lea ebx, [ebx + eax*2]
lea edx, [ebx + 2]
call fcn.004b5a80
test eax, eax
jne 0x4ad2b4
movzx eax, word [ebx]
lea ecx, [eax + eax]
cmp ecx, dword [esp + 0x170]
jge 0x4ad2a7
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x4ad445
mov eax, dword [esp + 0x174]
inc ebp
cmp ebp, dword [eax + 0x20]
jl 0x4ad270
mov ebp, dword [esp + 0x10]
xor edx, edx
movzx edi, word [ebp + 2]
jmp 0x4ad453
mov edi, dword [esp + 0x174]
mov eax, dword [edi + 0xa8]
test eax, eax
jne 0x4ad2e6
movzx eax, word [ebp + 2]
lea ecx, [eax*2]
add ecx, ebp
jmp 0x4ad46d
movzx edi, word [ebp + 6]
cmp edi, 0xffff
je 0x4ad445
cmp edi, dword [eax + 4]
je 0x4ad445
xor edx, edx
mov dword [esp + 0x24], edx
cmp ecx, 0x8a
jne 0x4ad431
mov eax, dword [esp + 0x174]
xor ebp, ebp
mov ecx, dword [eax + 0x28]
mov ebx, ecx
mov eax, dword [eax + 0x20]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x174]
cmp dword [eax + 0x20], edx
jle 0x4ad42d
mov edx, ecx
mov esi, eax
xor ecx, ecx
nop dword [eax]
movzx eax, word [ebx]
cmp eax, edi
je 0x4ad35c
mov eax, dword [esi + 0x24]
inc ebp
mov ecx, ebp
lea ebx, [edx + eax*2]
mov eax, dword [esp + 0x2c]
mov edx, ebx
cmp ebp, eax
jl 0x4ad340
jmp 0x4ad360
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebx
cmp ecx, eax
jge 0x4ad42d
mov eax, dword [esp + 0x174]
mov edi, ebx
cmp ebx, dword [eax + 0x28]
jbe 0x4ad3db
lea ebp, [ebx + 2]
mov esi, eax
nop dword [eax + eax]
mov eax, dword [esi + 0x24]
mov ecx, ebp
neg eax
lea edi, [edi + eax*2]
lea edx, [edi + 2]
call fcn.004b5a80
test eax, eax
jne 0x4ad3c4
mov eax, dword [esi + 0xa8]
xor ebx, ebx
movzx ecx, word [edi]
mov eax, dword [eax + 4]
cmp ecx, eax
sete bl
mov dword [esp + 0x24], ebx
je 0x4ad3c4
cmp edi, dword [esi + 0x28]
ja 0x4ad390
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x174]
test edx, edx
jne 0x4ad44a
inc ebp
cmp ebp, dword [eax + 0x20]
jge 0x4ad43b
mov esi, dword [esp + 0x174]
lea edi, [ebx + 2]
nop
mov eax, dword [esi + 0x24]
mov ecx, edi
lea ebx, [ebx + eax*2]
lea edx, [ebx + 2]
call fcn.004b5a80
test eax, eax
jne 0x4ad425
mov eax, dword [esi + 0xa8]
xor edx, edx
movzx ecx, word [ebx]
mov eax, dword [eax + 4]
cmp ecx, eax
sete dl
mov dword [esp + 0x24], edx
je 0x4ad429
inc ebp
cmp ebp, dword [esi + 0x20]
jl 0x4ad3f0
jmp 0x4ad429
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
test edx, edx
jne 0x4ad44a
movzx edi, word [ebp + 2]
jmp 0x4ad453
mov ebp, dword [esp + 0x10]
movzx edi, word [ebp + 2]
jmp 0x4ad453
mov edx, 1
mov ebp, dword [esp + 0x10]
mov edi, 2
lea ecx, [edi*2]
add ecx, ebp
mov eax, ecx
test edx, edx
jne 0x4b2226
mov edi, dword [esp + 0x174]
cmp word [ecx], 0x71
mov eax, ecx
je 0x4b222d
lea edx, [ecx + 4]
mov dword [esp + 0x10], edx
jmp 0x4ace50
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x170]
movzx edi, word [eax + 2]
mov eax, dword [esp + 0x174]
lea edx, [edi + edi]
mov dword [eax + 0x94], edi
cmp edx, dword [eax + 0x14]
jl 0x4ad4c2
mov edx, dword [esp + 0x10]
mov edi, eax
add edx, 4
mov dword [esp + 0x10], edx
mov dword [edi + 0x40], 1
jmp 0x4ace57
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
sub eax, edi
mov edi, dword [esp + 0x174]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov ecx, esi
sub ecx, dword [edi + 0x78]
mov eax, dword [edi + 0xc]
sar ecx, 1
mov dword [eax + edx*4 + 4], ecx
cmp ebx, edx
jg 0x4ad4f3
lea ebx, [edx + 2]
mov dword [esp + 0x170], ebx
mov edx, dword [esp + 0x10]
add edx, 4
mov dword [esp + 0x10], edx
jmp 0x4ace57
mov ebp, dword [esp + 0x174]
mov edi, dword [edi + 0xb0]
cmp dword [ebp + 0x9c], 1
jne 0x4ad52a
mov dword [ebp + 0x9c], 0
mov ebx, 1
jmp 0x4ad52c
xor ebx, ebx
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x17c]
add edx, 4
inc eax
mov ecx, esi
push eax
push 0
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
cmp eax, 1
je 0x4ad595
cmp eax, 0xfffffc19
je 0x4ad595
test eax, eax
je 0x4ad572
cmp eax, 0xfffffc20
jne 0x4b2416
mov edx, dword [esp + 0x10]
movzx eax, word [edx + 2]
mov dword [ebp + 0xb0], edi
lea edx, [edx + eax*2]
movzx eax, word [edx]
mov dword [esp + 0x10], edx
mov ecx, eax
cmp eax, 0x71
je 0x4ad530
mov edi, ebp
jmp 0x4ad5ab
mov edx, dword [esp + 0x10]
mov edi, ebp
mov eax, dword [edi + 0x80]
mov dword [esp + 0x16c], eax
movzx eax, word [edx]
cmp ax, 0x72
je case.0x4ace89.151
test ebx, ebx
jne 0x4b25e6
nop dword [eax]
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x71
lea edx, [edx + eax*2]
je 0x4ad5c0
mov ebx, dword [edi + 0x90]
add edx, 4
mov dword [esp + 0x10], edx
mov dword [esp + 0x170], ebx
jmp 0x4ace57
mov ebp, dword [esp + 0x174]
mov edi, dword [edi + 0xb0]
cmp dword [ebp + 0x9c], 1
jne 0x4ad60e
mov dword [ebp + 0x9c], 0
mov ebx, 1
jmp 0x4ad610
xor ebx, ebx
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x17c]
add edx, 4
inc eax
mov ecx, esi
push eax
push 0
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
mov dword [ebp + 0xb0], edi
cmp eax, 1
je case.0x4ace89.151
cmp eax, 0xfffffc19
je case.0x4ace89.151
cmp eax, 0xfffffc1e
je 0x4ad691
cmp eax, 0xfffffc1d
je 0x4ad691
cmp eax, 0xfffffc1a
je 0x4ad691
test eax, eax
je 0x4ad679
cmp eax, 0xfffffc20
jne 0x4b2416
mov edx, dword [esp + 0x10]
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x71
lea edx, [edx + eax*2]
mov dword [esp + 0x10], edx
je 0x4ad614
jmp 0x4ad6ae
mov edx, dword [esp + 0x10]
nop word [eax + eax]
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x71
lea edx, [edx + eax*2]
je 0x4ad6a0
test ebx, ebx
jne 0x4b25e6
add edx, 4
mov edi, ebp
mov dword [esp + 0x10], edx
jmp 0x4ace50
mov edx, dword [esp + 0x10]
movzx ecx, word [edx + 2]
test ecx, ecx
je 0x4ad712
mov edi, dword [edi + 0x78]
mov ebx, 0xdc00
mov ebp, 0xfc00
nop dword [eax]
lea eax, [esi - 2]
mov edx, esi
mov esi, eax
dec ecx
cmp esi, edi
jb case.0x4ace89.151
mov ax, word [eax]
and ax, bp
cmp ax, bx
cmovne esi, edx
sub esi, 2
mov dword [esp + 0x14], esi
test ecx, ecx
jg 0x4ad6e0
mov edi, dword [esp + 0x174]
mov edx, dword [esp + 0x10]
cmp esi, dword [edi + 0x88]
jae 0x4ad720
mov dword [edi + 0x88], esi
add edx, 4
mov dword [esp + 0x10], edx
jmp 0x4ace50
mov ecx, dword [0x4e646c]
test ecx, ecx
je 0x4ad80d
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x80], 2
movzx eax, word [ebx + 2]
mov dword [esp + 0x84], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x88], eax
mov eax, dword [edi + 0x78]
mov dword [esp + 0x8c], eax
mov eax, dword [edi + 0x7c]
sub eax, dword [edi + 0x78]
sar eax, 1
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x16c]
sub eax, dword [edi + 0x78]
sar eax, 1
mov dword [esp + 0x94], eax
mov eax, esi
sub eax, dword [edi + 0x78]
sar eax, 1
mov dword [esp + 0x98], eax
movzx eax, word [ebx + 8]
mov dword [esp + 0xa8], eax
movzx eax, word [ebx + 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 [edi + 0x94]
mov dword [esp + 0xa0], eax
mov eax, dword [edi + 0xac]
mov dword [esp + 0xa4], eax
mov eax, dword [edi + 0xb4]
mov dword [esp + 0xb0], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0xb4], eax
lea eax, [esp + 0x80]
push eax
call ecx
add esp, 4
test eax, eax
jg case.0x4ace89.151
js 0x4b2416
mov edx, dword [esp + 0x10]
add edx, 0xc
mov dword [esp + 0x10], edx
jmp 0x4ace50
mov edx, dword [esp + 0x10]
mov ecx, dword [edi + 0x74]
movzx eax, word [edx + 2]
lea ebx, [ecx + eax*2]
cmp ebx, ecx
jne 0x4ad833
xor ecx, ecx
jmp 0x4ad837
movzx ecx, word [ebx + 4]
mov eax, dword [edi + 0xa8]
test eax, eax
je 0x4ad855
cmp ecx, dword [eax + 4]
jne 0x4ad84f
cmp esi, dword [eax + 0x10]
je 0x4b2541
mov eax, dword [eax]
test eax, eax
jne 0x4ad841
mov dword [esp + 0x54], ecx
add edx, 4
mov dword [esp + 0x60], esi
mov eax, dword [edi + 0xa8]
mov dword [esp + 0x50], eax
lea eax, [esp + 0x50]
mov dword [edi + 0xa8], eax
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x10], edx
mov dword [esp + 0x5c], ecx
cmp ecx, 0x1e
jg 0x4ad891
lea eax, [esp + 0xf0]
mov dword [esp + 0x58], eax
jmp 0x4ad8b2
lea eax, [ecx*4]
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 4
mov dword [esp + 0x58], eax
test eax, eax
je 0x4b2577
mov ecx, dword [esp + 0x5c]
shl ecx, 2
push ecx
push dword [edi + 0xc]
push eax
call sub.VCRUNTIME140.dll_memcpy
movzx ebp, word [ebx]
add esp, 0xc
mov eax, 0x82
cmp bp, ax
jb 0x4ad8d9
mov dword [edi + 0x9c], 2
mov eax, dword [esp + 0x17c]
mov ecx, esi
inc eax
push eax
push dword [esp + 0x17c]
movzx eax, word [ebx]
push edi
push dword [esp + 0x17c]
movzx eax, byte [eax + 0x4cc258]
push dword [esp + 0x17c]
lea edx, [ebx + eax*2]
call fcn.004acd50
mov ecx, dword [esp + 0x70]
add esp, 0x14
shl ecx, 2
mov edi, eax
mov eax, dword [esp + 0x174]
push ecx
push dword [esp + 0x5c]
push dword [eax + 0xc]
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esp + 0x180]
add esp, 0xc
mov eax, dword [esp + 0x50]
mov dword [ecx + 0xa8], eax
cmp edi, 1
je 0x4ad9ab
cmp edi, 0xfffffc19
je 0x4ad9ab
test edi, edi
je 0x4ad95d
cmp edi, 0xfffffc20
jne 0x4b2551
mov edi, ecx
lea eax, [esp + 0x50]
mov dword [edi + 0xa8], eax
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x71
lea ebx, [ebx + eax*2]
je 0x4ad8c5
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0xf0]
mov dword [edi + 0xa8], eax
mov eax, dword [esp + 0x58]
cmp eax, ecx
je case.0x4ace89.151
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 + 0x58]
lea ecx, [esp + 0xf0]
cmp eax, ecx
je 0x4ad9c4
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov edi, dword [esp + 0x174]
mov esi, dword [edi + 0x84]
mov eax, dword [edi + 0x80]
mov dword [esp + 0x14], esi
mov dword [esp + 0x16c], eax
jmp 0x4ace4c
mov edx, dword [esp + 0x10]
nop dword [eax + eax]
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x71
lea edx, [edx + eax*2]
je 0x4ad9f0
mov dword [esp + 0x10], edx
jmp 0x4ace50
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edi, dword [esp + 0x10]
inc eax
mov ebx, dword [esp + 0x170]
add edi, 2
push eax
push dword [esp + 0x17c]
mov edx, edi
push dword [esp + 0x17c]
push ebx
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
nop dword [eax + eax]
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x4ada50
lea edx, [edi + 4]
mov edi, dword [esp + 0x174]
mov dword [esp + 0x10], edx
jmp 0x4ace57
mov eax, dword [esp + 0x10]
add eax, 2
mov dword [esp + 0x10], eax
mov edx, eax
nop
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x71
lea edx, [edx + eax*2]
je 0x4ada80
mov eax, dword [esp + 0x17c]
add edx, 4
mov ebx, dword [esp + 0x170]
inc eax
push eax
push dword [esp + 0x17c]
mov ecx, esi
push edi
push ebx
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
mov edx, dword [esp + 0x10]
jmp 0x4ace57
mov ecx, dword [esp + 0x10]
add ecx, 2
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x71
lea ecx, [ecx + eax*2]
je 0x4adad3
lea edx, [ecx + 4]
mov dword [esp + 0x10], edx
jmp 0x4ace50
mov eax, dword [esp + 0x10]
mov ebp, 1
add eax, 2
mov dword [esp + 0x28], ebp
mov dword [esp + 0x10], eax
movzx edx, word [eax]
mov dword [esp + 0x1c], edx
cmp edx, 0x80
je 0x4adb1c
cmp edx, 0x85
jne 0x4adced
movzx edx, word [eax + 4]
mov dword [esp + 0x2c], edx
lea eax, [edx + edx]
cmp eax, dword [edi + 0x14]
jge 0x4adce3
mov ecx, dword [edi + 0xc]
xor ebp, ebp
mov ebx, dword [esp + 0x10]
sub ebx, dword [edi + 0x74]
shl eax, 2
mov dword [esp + 0x24], eax
sar ebx, 1
mov edi, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0x38], edi
mov eax, dword [eax + 0x10]
sub eax, edx
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x174]
mov dword [esp + 0x20], eax
mov edi, dword [ecx + 0x94]
mov eax, dword [esp + 0x174]
mov edx, esi
sub edx, dword [ecx + 0x78]
mov ecx, dword [ecx + 0x10]
sub ecx, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
sar edx, 1
cmp dword [esp + 0x1c], 0x82
mov dword [eax + ecx*4], edx
jb 0x4adbaa
mov eax, dword [esp + 0x174]
mov dword [eax + 0x9c], 2
mov ecx, dword [esp + 0x10]
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 + 0x4cc258]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
lea edx, [ecx + eax*2]
mov ecx, esi
call fcn.004acd50
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1b
jne 0x4adc26
mov ecx, dword [esp + 0x174]
mov ebp, 1
mov eax, dword [ecx + 0x90]
mov esi, dword [ecx + 0x84]
mov dword [esp + 0x170], eax
mov eax, dword [ecx + 0x74]
mov dword [esp + 0x14], esi
lea eax, [eax + ebx*2]
mov dword [esp + 0x10], eax
jmp 0x4adb6e
cmp ecx, 0xfffffc20
jne 0x4adc65
mov edx, dword [esp + 0x10]
movzx eax, word [edx + 2]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x174]
cmp dword [edx + 0x80], eax
jae 0x4adc58
mov edx, dword [esp + 0x10]
cmp word [edx], 0x71
je 0x4adc6d
cmp word [eax], 0x71
je 0x4adc6d
mov eax, ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
test ecx, ecx
jne 0x4adc58
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x174]
mov dword [ecx + 0x94], edi
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x71
lea edx, [edx + eax*2]
mov dword [esp + 0x10], edx
je 0x4adb74
mov edi, ecx
test ebp, ebp
jne 0x4adcc4
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x38]
mov dword [ecx + eax], edx
mov eax, dword [edi + 0xc]
mov edx, dword [esp + 0x30]
mov dword [ecx + eax + 4], edx
mov ecx, dword [edi + 0x10]
sub ecx, dword [esp + 0x2c]
mov eax, dword [edi + 0xc]
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], edx
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x28], 0
jne 0x4acfbb
test ebp, ebp
je case.0x4ace89.151
add edx, 4
mov dword [esp + 0x10], edx
jmp 0x4ace50
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
xor ebp, ebp
mov ecx, dword [esp + 0x174]
mov edi, eax
xor ebx, ebx
sub edi, dword [ecx + 0x74]
sar edi, 1
nop dword [eax]
cmp edx, 0x82
jb 0x4add12
mov dword [ecx + 0x9c], 2
mov eax, dword [esp + 0x17c]
inc eax
push eax
push dword [esp + 0x17c]
push ecx
mov ecx, dword [esp + 0x1c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x4cc258]
lea edx, [ecx + eax*2]
mov ecx, esi
call fcn.004acd50
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1b
jne 0x4add8c
mov ecx, dword [esp + 0x174]
mov ebx, 1
mov edx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x90]
mov esi, dword [ecx + 0x84]
mov dword [esp + 0x170], eax
mov eax, dword [ecx + 0x74]
mov dword [esp + 0x14], esi
lea eax, [eax + edi*2]
mov dword [esp + 0x10], eax
jmp 0x4add00
cmp ecx, 0xfffffc20
jne 0x4addc2
mov edx, dword [esp + 0x10]
movzx eax, word [edx + 2]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x174]
cmp dword [edx + 0x80], eax
jae 0x4adc58
mov edx, dword [esp + 0x10]
cmp word [edx], 0x71
je 0x4addca
cmp word [eax], 0x71
jmp 0x4addc4
test ecx, ecx
jne 0x4adc58
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x71
lea ecx, [ecx + eax*2]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x174]
je 0x4add00
test ebx, ebx
jne 0x4addfb
test ebp, ebp
je case.0x4ace89.151
mov edx, dword [esp + 0x10]
mov edi, ecx
add edx, 4
mov dword [esp + 0x10], edx
jmp 0x4ace50
mov edx, dword [esp + 0x10]
mov ebp, edx
movzx eax, word [edx + 2]
add eax, eax
sub ebp, eax
mov eax, 0x82
movzx ecx, word [ebp]
cmp cx, ax
jae 0x4ade38
cmp ecx, 0x7b
je 0x4ade38
mov dword [esp + 0x2c], 0
jmp 0x4ade51
mov ebx, dword [esp + 0x178]
lea eax, [ebx + 4]
mov ebx, dword [ebx]
mov eax, dword [eax]
mov dword [esp + 0x178], ebx
mov dword [esp + 0x2c], eax
cmp ecx, 0x77
jb 0x4ade5f
cmp ecx, 0x7a
jbe 0x4b25c6
cmp ecx, 0x7c
je 0x4b25c6
cmp ecx, 0x7f
je 0x4ade8b
mov eax, 0x84
cmp cx, ax
je 0x4ade8b
mov eax, 0x80
cmp cx, ax
je 0x4ade8b
mov eax, 0x85
cmp cx, ax
jne 0x4adebb
movzx ebx, word [ebp + 4]
mov eax, dword [edi + 0xa8]
lea edx, [ebx + ebx]
test eax, eax
je 0x4adea5
cmp dword [eax + 4], ebx
je 0x4b2587
mov dword [edi + 0x94], ebx
cmp edx, dword [edi + 0x14]
jl 0x4adf29
mov edx, dword [esp + 0x10]
mov dword [edi + 0x40], 1
mov ebx, dword [esp + 0x170]
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x72
je 0x4aded6
cmp esi, dword [esp + 0x2c]
jne 0x4b2280
add edx, 4
cmp word [ebp], 0x7b
mov dword [esp + 0x10], edx
jne 0x4ace57
mov eax, dword [esp + 0x17c]
mov ecx, esi
inc eax
push eax
push dword [esp + 0x17c]
push edi
push ebx
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
mov dword [edi + 0xb8], ebp
mov eax, 0xfffffc1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ecx, dword [esp + 0x170]
cmp edx, ecx
jle 0x4adf54
mov eax, dword [edi + 0xc]
lea edi, [eax + ecx*4]
lea ecx, [eax + edx*4]
cmp edi, ecx
jae 0x4adf4d
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x174]
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
sub eax, ebx
mov ebx, dword [esp + 0x170]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov ecx, esi
sub ecx, dword [edi + 0x78]
mov eax, dword [edi + 0xc]
sar ecx, 1
mov dword [eax + edx*4 + 4], ecx
cmp ebx, edx
jg 0x4adf85
lea ebx, [edx + 2]
mov dword [esp + 0x170], ebx
mov edx, dword [esp + 0x10]
jmp 0x4adec2
cmp dword [edi + 0x44], 0
je case.0x4ace89.1
cmp esi, dword [edi + 0x78]
je case.0x4ace89.151
cmp esi, dword [edi + 0x78]
jne case.0x4ace89.151
mov edx, dword [esp + 0x10]
add edx, 2
mov dword [esp + 0x10], edx
jmp 0x4ace50
cmp dword [edi + 0x44], 0
je 0x4adfc5
cmp esi, dword [edi + 0x78]
je case.0x4ace89.151
mov ecx, dword [edi + 0x78]
cmp esi, ecx
je 0x4adfa6
cmp esi, dword [edi + 0x7c]
je case.0x4ace89.151
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4ae00d
cmp esi, ecx
jbe case.0x4ace89.151
push 1
lea eax, [edi + 0x1c]
push eax
push ecx
mov ecx, esi
call fcn.004b5c30
add esp, 0xc
test eax, eax
je case.0x4ace89.151
mov edx, dword [esp + 0x10]
add edx, 2
mov dword [esp + 0x10], edx
jmp 0x4ace50
mov edi, dword [edi + 0x1c]
lea edx, [edi + edi]
lea eax, [edx + ecx]
cmp esi, eax
jb case.0x4ace89.151
mov ecx, esi
sub ecx, edx
mov edx, dword [esp + 0x174]
mov ax, word [ecx]
cmp ax, word [edx + 0x2c]
jne case.0x4ace89.151
cmp edi, 1
mov edi, edx
je 0x4adfa6
mov ax, word [ecx + 2]
cmp ax, word [edi + 0x2e]
jne case.0x4ace89.151
mov edx, dword [esp + 0x10]
add edx, 2
mov dword [esp + 0x10], edx
jmp 0x4ace50
mov ecx, dword [edi + 0x98]
mov eax, dword [edi + 0x78]
lea eax, [eax + ecx*2]
cmp esi, eax
jmp 0x4adfa0
mov edx, dword [esp + 0x10]
add edx, 2
mov dword [esp + 0x16c], esi
mov dword [esp + 0x10], edx
jmp 0x4ace50
mov ecx, dword [edi + 0x7c]
cmp esi, ecx
jae 0x4ae0f3
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4ae0c0
push 1
lea eax, [edi + 0x1c]
push eax
push ecx
mov ecx, esi
call fcn.004b5b90
add esp, 0xc
test eax, eax
je case.0x4ace89.151
mov edx, dword [esp + 0x10]
add edx, 2
mov dword [esp + 0x10], edx
jmp 0x4ace50
mov edx, dword [edi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja case.0x4ace89.151
mov ax, word [esi]
cmp ax, word [edi + 0x2c]
jne case.0x4ace89.151
cmp edx, 1
je 0x4adfa6
mov ax, word [esi + 2]
cmp ax, word [edi + 0x2e]
jmp 0x4adfa0
cmp dword [edi + 0x48], 0
jne case.0x4ace89.151
cmp dword [edi + 0x8c], 0
je 0x4adfa6
cmp esi, dword [edi + 0x88]
jbe 0x4adfa6
mov dword [edi + 0x64], 1
cmp dword [edi + 0x8c], 1
jg 0x4b3fe6
mov edx, dword [esp + 0x10]
add edx, 2
mov dword [esp + 0x10], edx
jmp 0x4ace50
cmp dword [edi + 0x48], 0
jne case.0x4ace89.151
cmp dword [edi + 0x58], 0
je case.0x4ace89.23
cmp esi, dword [edi + 0x7c]
jb case.0x4ace89.151
jmp 0x4ae0fd
mov edi, dword [edi + 0x7c]
cmp esi, edi
jae 0x4ae1c8
mov ebp, dword [esp + 0x174]
mov edx, dword [ebp + 0x18]
lea ebx, [ebp + 0x1c]
test edx, edx
je 0x4ae18a
push 1
push ebx
push edi
mov ecx, esi
call fcn.004b5b90
add esp, 0xc
test eax, eax
je case.0x4ace89.151
mov edx, dword [ebx]
mov edi, dword [ebp + 0x7c]
jmp 0x4ae1bb
mov edx, dword [ebx]
mov ecx, edi
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja case.0x4ace89.151
mov ax, word [esi]
cmp ax, word [ebp + 0x2c]
jne case.0x4ace89.151
cmp edx, 1
je 0x4ae1bb
mov ax, word [esi + 2]
cmp ax, word [ebp + 0x2e]
jne case.0x4ace89.151
lea eax, [edx + edx]
sub edi, eax
cmp esi, edi
jne case.0x4ace89.151
mov edi, dword [esp + 0x174]
jmp 0x4ae0fd
cmp esi, dword [edi + 0x78]
je 0x4ae297
mov ax, word [esi - 2]
lea edx, [esi - 2]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
cmovne edx, esi
sub edx, 2
cmp edx, dword [edi + 0x88]
jae 0x4ae208
mov dword [edi + 0x88], edx
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4ae233
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
cmp dword [edi + 0x54], 0
je 0x4ae27f
cmp ecx, 0x5f
jne 0x4ae243
lea edx, [ecx - 0x5e]
jmp 0x4ae299
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ca058]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
mov eax, dword [eax*4 + 0x4cc638]
cmp eax, 1
je 0x4ae278
cmp eax, 3
jne 0x4ae297
mov edx, 1
jmp 0x4ae299
cmp ecx, 0x100
jae 0x4ae297
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 0x10
je 0x4ae297
mov edx, 1
jmp 0x4ae299
xor edx, edx
cmp esi, dword [edi + 0x7c]
jb 0x4ae2ea
cmp dword [edi + 0x8c], 0
je 0x4ae2c3
cmp esi, dword [edi + 0x88]
jbe 0x4ae2c3
mov dword [edi + 0x64], 1
cmp dword [edi + 0x8c], 1
jg 0x4b3fe6
xor ecx, ecx
mov ebx, dword [esp + 0x10]
xor ecx, edx
movzx eax, word [ebx]
add ebx, 2
mov dword [esp + 0x10], ebx
cmp eax, 5
jne 0x4ae2dd
xor ecx, 1
test ecx, ecx
jne case.0x4ace89.151
jmp 0x4ace4c
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4ae315
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
cmp dword [edi + 0x54], 0
je 0x4ae36a
cmp ecx, 0x5f
jne 0x4ae327
mov ecx, 1
jmp 0x4ae2c5
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ca058]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
mov eax, dword [eax*4 + 0x4cc638]
cmp eax, 1
je 0x4ae360
cmp eax, 3
jne 0x4ae2c3
mov ecx, 1
jmp 0x4ae2c5
cmp ecx, 0x100
jae 0x4ae2c3
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 0x10
je 0x4ae2c3
mov ecx, 1
jmp 0x4ae2c5
mov edx, dword [edi + 0x18]
mov ecx, dword [edi + 0x7c]
test edx, edx
je 0x4ae3b6
cmp esi, ecx
jae case.0x4ace89.13
push 1
lea eax, [edi + 0x1c]
push eax
push ecx
mov ecx, esi
call fcn.004b5b90
add esp, 0xc
test eax, eax
jne case.0x4ace89.151
jmp case.0x4ace89.13
mov edx, dword [edi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja case.0x4ace89.13
mov ax, word [esi]
cmp ax, word [edi + 0x2c]
jne case.0x4ace89.13
cmp edx, 1
je case.0x4ace89.151
mov ax, word [esi + 2]
cmp ax, word [edi + 0x2e]
je case.0x4ace89.151
mov eax, dword [edi + 0x7c]
cmp esi, eax
jae 0x4b25f6
add esi, 2
mov dword [esp + 0x14], esi
cmp esi, eax
jae 0x4adfa6
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4adfa6
mov edx, dword [esp + 0x10]
add esi, 2
add edx, 2
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], edx
jmp 0x4ace50
cmp esi, dword [edi + 0x7c]
jae 0x4b25f6
mov edx, dword [esp + 0x10]
add esi, 2
add edx, 2
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], edx
jmp 0x4ace50
cmp esi, dword [edi + 0x7c]
jae 0x4b25f6
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4ae48d
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [esp + 0x14], esi
cmp ecx, 0x100
jae 0x4adfa6
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 4
jmp 0x4adfa0
cmp esi, dword [edi + 0x7c]
jae 0x4b25f6
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4ae4e6
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [esp + 0x14], esi
cmp ecx, 0xff
ja case.0x4ace89.151
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 4
je case.0x4ace89.151
mov edx, dword [esp + 0x10]
add edx, 2
mov dword [esp + 0x10], edx
jmp 0x4ace50
cmp esi, dword [edi + 0x7c]
jae 0x4b25f6
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4ae550
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [esp + 0x14], esi
cmp ecx, 0x100
jae 0x4adfa6
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 1
jmp 0x4adfa0
cmp esi, dword [edi + 0x7c]
jae 0x4b25f6
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4ae5a9
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [esp + 0x14], esi
cmp ecx, 0xff
ja case.0x4ace89.151
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 1
je case.0x4ace89.151
mov edx, dword [esp + 0x10]
add edx, 2
mov dword [esp + 0x10], edx
jmp 0x4ace50
cmp esi, dword [edi + 0x7c]
jae 0x4b25f6
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4ae613
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [esp + 0x14], esi
cmp ecx, 0x100
jae 0x4adfa6
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 0x10
jmp 0x4adfa0
cmp esi, dword [edi + 0x7c]
jae 0x4b25f6
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4ae66c
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [esp + 0x14], esi
cmp ecx, 0xff
ja case.0x4ace89.151
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 0x10
je case.0x4ace89.151
mov edx, dword [esp + 0x10]
add edx, 2
mov dword [esp + 0x10], edx
jmp 0x4ace50
mov edi, dword [edi + 0x7c]
cmp esi, edi
jae 0x4b2622
movzx ecx, word [esi]
lea edx, [esi + 2]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4ae6d0
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edx, 2
cmp ecx, 0xd
ja 0x4ae730
je 0x4ae6fe
cmp ecx, 0xa
je 0x4ae6e1
lea eax, [ecx - 0xb]
jmp 0x4ae73e
mov edi, dword [esp + 0x174]
mov esi, edx
mov edx, dword [esp + 0x10]
add edx, 2
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], edx
jmp 0x4ace50
mov esi, edx
mov dword [esp + 0x14], esi
cmp edx, edi
jae 0x4ae719
cmp word [edx], 0xa
mov dword [esp + 0x14], esi
jne 0x4ae719
lea esi, [edx + 2]
mov dword [esp + 0x14], esi
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x174]
add edx, 2
mov dword [esp + 0x10], edx
jmp 0x4ace50
cmp ecx, 0x85
je 0x4ae747
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x4ace89.151
mov edi, dword [esp + 0x174]
mov esi, edx
mov dword [esp + 0x14], esi
cmp dword [edi + 0x68], 0
jmp 0x4adfa0
cmp esi, dword [edi + 0x7c]
jae 0x4b25f6
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4ae79e
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [esp + 0x14], esi
cmp ecx, 0x180e
ja 0x4ae7f8
je case.0x4ace89.151
cmp ecx, 0xa0
ja 0x4ae7dc
je case.0x4ace89.151
cmp ecx, 9
je case.0x4ace89.151
cmp ecx, 0x20
je case.0x4ace89.151
mov edx, dword [esp + 0x10]
add edx, 2
mov dword [esp + 0x10], edx
jmp 0x4ace50
cmp ecx, 0x1680
je case.0x4ace89.151
mov edx, dword [esp + 0x10]
add edx, 2
mov dword [esp + 0x10], edx
jmp 0x4ace50
cmp ecx, 0x205f
ja 0x4ae83a
je case.0x4ace89.151
cmp ecx, 0x2000
jb 0x4adfa6
cmp ecx, 0x200a
jbe case.0x4ace89.151
cmp ecx, 0x202f
je case.0x4ace89.151
mov edx, dword [esp + 0x10]
add edx, 2
mov dword [esp + 0x10], edx
jmp 0x4ace50
cmp ecx, 0x3000
je case.0x4ace89.151
mov edx, dword [esp + 0x10]
add edx, 2
mov dword [esp + 0x10], edx
jmp 0x4ace50
cmp esi, dword [edi + 0x7c]
jae 0x4b25f6
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4ae897
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [esp + 0x14], esi
cmp ecx, 0x180e
ja 0x4ae8cf
je 0x4adfa6
cmp ecx, 0xa0
ja 0x4ae8c4
je 0x4adfa6
cmp ecx, 9
je 0x4adfa6
cmp ecx, 0x20
jmp 0x4adfa0
cmp ecx, 0x1680
jmp 0x4adfa0
cmp ecx, 0x205f
ja 0x4ae900
je 0x4adfa6
cmp ecx, 0x2000
jb case.0x4ace89.151
cmp ecx, 0x200a
jbe 0x4adfa6
cmp ecx, 0x202f
jmp 0x4adfa0
cmp ecx, 0x3000
jmp 0x4adfa0
cmp esi, dword [edi + 0x7c]
jae 0x4b25f6
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4ae94c
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [esp + 0x14], esi
cmp ecx, 0x85
ja 0x4ae97c
je case.0x4ace89.151
cmp ecx, 0xa
jb 0x4adfa6
cmp ecx, 0xd
jbe case.0x4ace89.151
mov edx, dword [esp + 0x10]
add edx, 2
mov dword [esp + 0x10], edx
jmp 0x4ace50
cmp ecx, 0x2028
jb 0x4adfa6
cmp ecx, 0x2029
jbe case.0x4ace89.151
mov edx, dword [esp + 0x10]
add edx, 2
mov dword [esp + 0x10], edx
jmp 0x4ace50
cmp esi, dword [edi + 0x7c]
jae 0x4b25f6
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4ae9e5
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [esp + 0x14], esi
cmp ecx, 0x85
ja 0x4aea0f
je 0x4adfa6
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x4ace89.151
mov edx, dword [esp + 0x10]
add edx, 2
mov dword [esp + 0x10], edx
jmp 0x4ace50
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x4ace89.151
mov edx, dword [esp + 0x10]
add edx, 2
mov dword [esp + 0x10], edx
jmp 0x4ace50
cmp esi, dword [edi + 0x7c]
jae 0x4b25f6
movzx edx, word [esi]
add esi, 2
mov eax, edx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4aea6f
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
add esi, 2
or edx, eax
mov dword [esp + 0x14], esi
add edx, 0x10000
mov ebx, dword [esp + 0x10]
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ca058]
mov eax, edx
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4bd678]
movzx ecx, word [ebx + 2]
cmp ecx, 8
ja case.default.0x4aea9e
jmp dword [ecx*4 + 0x4b4778]
cmp dword [esp + 0x1c], 0xf
jmp 0x4aebe1
mov al, byte [eax*8 + 0x4c8f79]
cmp al, 9
je 0x4aebd0
cmp al, 5
je 0x4aebd0
cmp al, 8
je 0x4aebd0
xor ecx, ecx
jmp 0x4aebd5
movzx ecx, byte [eax*8 + 0x4c8f79]
xor edx, edx
movzx eax, word [ebx + 4]
cmp eax, dword [ecx*4 + 0x4cc638]
setne dl
xor eax, eax
cmp dword [esp + 0x1c], 0x10
sete al
cmp edx, eax
jmp 0x4aebe1
movzx eax, byte [eax*8 + 0x4c8f79]
mov edx, dword [esp + 0x10]
xor ecx, ecx
cmp word [edx + 4], ax
setne cl
xor eax, eax
cmp dword [esp + 0x1c], 0x10
sete al
cmp ecx, eax
je case.0x4ace89.151
add edx, 6
mov dword [esp + 0x10], edx
jmp 0x4ace50
movzx eax, byte [eax*8 + 0x4c8f78]
jmp 0x4aeb06
movzx eax, byte [eax*8 + 0x4c8f79]
mov eax, dword [eax*4 + 0x4cc638]
cmp eax, 1
je 0x4aebd0
cmp eax, 3
je 0x4aebd0
xor ecx, ecx
jmp 0x4aebd5
movzx eax, byte [eax*8 + 0x4c8f79]
cmp dword [eax*4 + 0x4cc638], 6
je 0x4aebd0
cmp edx, 9
je 0x4aebd0
cmp edx, 0xa
je 0x4aebd0
cmp edx, 0xc
je 0x4aebd0
cmp edx, 0xd
je 0x4aebd0
xor ecx, ecx
jmp 0x4aebd5
movzx eax, byte [eax*8 + 0x4c8f79]
cmp dword [eax*4 + 0x4cc638], 6
je 0x4aebd0
cmp edx, 9
je 0x4aebd0
cmp edx, 0xa
je 0x4aebd0
cmp edx, 0xb
jmp 0x4aeb7d
movzx eax, byte [eax*8 + 0x4c8f79]
mov eax, dword [eax*4 + 0x4cc638]
cmp eax, 1
je 0x4aebd0
cmp eax, 3
je 0x4aebd0
cmp edx, 0x5f
je 0x4aebd0
xor ecx, ecx
jmp 0x4aebd5
mov ecx, 1
xor eax, eax
cmp dword [esp + 0x1c], 0xf
sete al
cmp ecx, eax
je case.0x4ace89.151
mov edx, dword [esp + 0x10]
add edx, 6
mov dword [esp + 0x10], edx
jmp 0x4ace50
mov ebx, dword [edi + 0x7c]
cmp esi, ebx
jae 0x4b25f6
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4aec3a
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [esp + 0x14], esi
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ca058]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
cmp dword [eax*4 + 0x4cc638], 2
je case.0x4ace89.151
cmp esi, ebx
jae 0x4adfa6
mov edi, esi
movzx ecx, word [esi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4aecab
movzx eax, word [esi + 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 + 0x4ca058]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
cmp dword [eax*4 + 0x4cc638], 2
jne 0x4ae715
lea esi, [edi + edx*2]
mov edi, esi
cmp esi, ebx
jb 0x4aec76
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x174]
add edx, 2
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], edx
jmp 0x4ace50
mov ebx, dword [esp + 0x10]
xor edx, edx
cmp dword [esp + 0x1c], 0x6e
sete dl
movzx eax, word [ebx + 2]
add ebx, 4
mov dword [esp + 0x24], edx
mov dword [esp + 0x10], ebx
lea ecx, [eax + eax]
mov dword [esp + 0x2c], ecx
cmp ecx, dword [esp + 0x170]
jge 0x4aed40
mov eax, dword [edi + 0xc]
mov edi, dword [eax + ecx*4]
test edi, edi
js 0x4aed40
mov ebp, dword [eax + ecx*4 + 4]
sub ebp, edi
jmp 0x4aed51
mov eax, dword [esp + 0x174]
mov ebp, dword [eax + 0x50]
neg ebp
sbb ebp, ebp
neg ebp
dec ebp
movzx edi, word [ebx]
mov ebx, edi
lea eax, [ebx - 0x62]
cmp eax, 7
ja case.default.0x4aed69
movzx eax, byte [eax + 0x4b47a4]
jmp dword [eax*4 + 0x4b479c]
mov eax, dword [esp + 0x28]
movsx edi, byte [ebx + str.space]
add eax, 6
mov dword [esp + 0x10], eax
mov eax, ebx
movsx ebx, byte [ebx + 0x4bd1c2]
and eax, 1
mov dword [esp + 0x38], eax
test ebx, ebx
mov eax, SysReAllocString
cmove ebx, eax
jmp 0x4aedc4
xor eax, eax
cmp edi, 0x69
sete al
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x28]
movzx ebx, word [eax + 8]
movzx edi, word [eax + 6]
test ebx, ebx
cmove ebx, dword [esp + 0x44]
add eax, 0xa
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], ebx
test ebp, ebp
je 0x4ace45
jns 0x4aedda
test edi, edi
je 0x4ace45
mov ebx, 1
cmp edi, ebx
jl 0x4aee12
push edx
push dword [esp + 0x178]
mov edx, esi
push ebp
call fcn.004acba0
add esp, 0xc
test eax, eax
js 0x4b2655
mov ecx, dword [esp + 0x2c]
lea esi, [esi + eax*2]
mov edx, dword [esp + 0x24]
inc ebx
mov dword [esp + 0x14], esi
cmp ebx, edi
jle 0x4aede3
mov eax, dword [esp + 0x28]
cmp edi, eax
je 0x4ace45
cmp dword [esp + 0x38], 0
je 0x4b2674
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
mov ebx, dword [esp + 0x2c]
nop dword [eax + eax]
cmp edi, dword [esp + 0x28]
jge case.0x4ace89.151
push dword [esp + 0x24]
mov edx, esi
mov ecx, ebx
push dword [esp + 0x178]
push ebp
call fcn.004acba0
add esp, 0xc
test eax, eax
js 0x4b2655
mov edx, dword [esp + 0x10]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x17c]
mov ecx, esi
inc eax
inc edi
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4aee70
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov edi, dword [esp + 0x174]
push edx
push edi
push ebp
mov edx, esi
call fcn.004acba0
add esp, 0xc
test eax, eax
js 0x4b2743
lea esi, [esi + eax*2]
mov dword [esp + 0x14], esi
jmp 0x4ace4c
mov eax, dword [esp + 0x10]
movzx edx, word [eax + 0x22]
lea ebp, [eax + 2]
add eax, 0x22
mov dword [esp + 0x40], ebp
mov ecx, edx
mov dword [esp + 0x10], eax
lea eax, [ecx - 0x62]
cmp eax, 7
ja case.default.0x4aef33
movzx eax, byte [eax + 0x4b47b4]
jmp dword [eax*4 + 0x4b47ac]
movsx edi, byte [ecx + str.space]
mov ebx, ecx
movsx ecx, byte [ecx + 0x4bd1c2]
and ebx, 1
mov edx, dword [esp + 0x10]
test ecx, ecx
mov eax, SysReAllocString
mov dword [esp + 0x30], ebx
cmove ecx, eax
mov eax, 2
jmp 0x4aef8d
xor eax, eax
cmp edx, 0x69
mov edx, dword [esp + 0x10]
sete al
mov dword [esp + 0x30], eax
mov eax, SysReAllocString
movzx ecx, word [edx + 4]
movzx edi, word [edx + 2]
test ecx, ecx
cmove ecx, eax
mov eax, 6
add edx, eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], edi
mov dword [esp + 0x10], edx
cmp edi, 1
jl 0x4af038
jmp 0x4aefb7
mov edi, 1
mov dword [esp + 0x28], 1
mov dword [esp + 0x24], edi
mov ebx, 1
nop dword [eax]
mov eax, dword [esp + 0x174]
cmp esi, dword [eax + 0x7c]
jae 0x4b2629
movzx edx, word [esi]
add esi, 2
mov eax, edx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4af008
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add esi, 2
mov dword [esp + 0x14], esi
cmp edx, 0xff
jbe 0x4af017
cmp dword [esp + 0x1c], 0x6a
jmp 0x4af029
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
test byte [edx + ebp], al
je case.0x4ace89.151
inc ebx
cmp ebx, edi
jle 0x4aefc0
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
cmp edi, ebx
jne 0x4b275e
mov edi, dword [esp + 0x174]
jmp 0x4ace50
mov edi, dword [esp + 0x10]
movzx eax, word [edi + 2]
lea ebp, [edi + 4]
movzx edx, word [edi + eax*2]
lea edi, [edi + eax*2]
mov ecx, edx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x10], edi
lea eax, [ecx - 0x62]
cmp eax, 7
ja case.default.0x4af07b
movzx eax, byte [eax + 0x4b47c4]
jmp dword [eax*4 + 0x4b47bc]
movsx eax, byte [ecx + 0x4bd1c2]
mov edx, ecx
movsx ebx, byte [ecx + str.space]
add edi, 2
and edx, 1
mov dword [esp + 0x10], edi
mov dword [esp + 0x30], edx
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4af0ea
mov dword [esp + 0x28], connect
jmp 0x4af0ea
movzx ebx, word [edi + 2]
xor eax, eax
cmp edx, 0x69
mov ecx, SysReAllocString
sete al
mov dword [esp + 0x30], eax
movzx eax, word [edi + 4]
test eax, eax
cmove eax, ecx
add edi, 6
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], edi
jmp 0x4af0ea
mov dword [esp + 0x28], 1
mov ebx, 1
mov edi, 1
cmp ebx, edi
jl 0x4af161
nop dword [eax]
nop word [eax + eax]
mov eax, dword [esp + 0x174]
cmp esi, dword [eax + 0x7c]
jae 0x4b2629
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4af148
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [esp + 0x14], esi
push 1
mov edx, ebp
call fcn.004b5d10
add esp, 4
test eax, eax
je case.0x4ace89.151
inc edi
cmp edi, ebx
jle 0x4af100
mov edi, dword [esp + 0x28]
cmp ebx, edi
je 0x4ace45
cmp dword [esp + 0x30], 0
je 0x4b29d5
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
cmp ebx, edi
jge case.0x4ace89.151
mov eax, dword [esp + 0x174]
cmp esi, dword [eax + 0x7c]
jae 0x4b2629
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4af1fb
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
push 1
mov edx, ebp
call fcn.004b5d10
add esp, 4
test eax, eax
je case.0x4ace89.151
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
inc ebx
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4af1b3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ebx, dword [esp + 0x10]
mov ecx, 0xfc00
add ebx, 2
xor edx, edx
mov ax, word [ebx]
and ax, cx
mov ecx, 0xd800
cmp ax, cx
mov ecx, dword [edi + 0x7c]
mov eax, ecx
sete dl
sub eax, esi
inc edx
sar eax, 1
cmp edx, eax
jg 0x4b2b13
movzx ecx, word [ebx]
dec edx
movzx eax, word [esi]
add ebx, 2
add esi, 2
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], esi
cmp cx, ax
jne case.0x4ace89.151
test edx, edx
jg 0x4af287
jmp 0x4ace4c
cmp esi, dword [edi + 0x7c]
jae 0x4b25f6
mov ecx, dword [esp + 0x10]
add ecx, 2
movzx edi, word [ecx]
lea edx, [ecx + 2]
mov eax, edi
mov dword [esp + 0x10], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4af2f6
movzx eax, word [edx]
and edi, 0x3ff
and eax, 0x3ff
shl edi, 0xa
or edi, eax
mov ebx, 4
add edi, 0x10000
jmp 0x4af2fb
mov ebx, 2
movzx eax, word [esi]
cmp edi, 0x80
jae 0x4af345
mov ebx, 0xff
mov ecx, eax
cmp ax, bx
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x34]
ja 0x4af322
movzx ecx, byte [eax + ecx]
jmp 0x4af326
mov dword [esp + 0x10], edx
movzx eax, byte [eax + edi]
cmp eax, ecx
jne case.0x4ace89.151
mov edi, dword [esp + 0x174]
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x4ace50
mov edx, eax
add esi, 2
and eax, 0xfc00
mov dword [esp + 0x14], esi
cmp eax, 0xd800
jne 0x4af37a
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
add esi, 2
or edx, eax
mov dword [esp + 0x14], esi
add edx, 0x10000
lea eax, [ecx + ebx]
mov ebx, dword [esp + 0x170]
mov dword [esp + 0x10], eax
cmp edi, edx
je 0x4ace32
mov eax, edi
shr eax, 7
movzx ecx, byte [eax + 0x4ca058]
mov eax, edi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4bd678]
mov eax, dword [eax*8 + 0x4c8f7c]
add eax, edi
cmp edx, eax
jne case.0x4ace89.151
jmp 0x4ace45
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 2]
lea edi, [ecx + 4]
mov ebp, eax
jmp 0x4af49c
mov dword [esp + 0x38], 1
mov ebx, dword [esp + 0x10]
xor ebp, ebp
mov dword [esp + 0x24], ebp
movzx eax, word [ebx + 2]
mov dword [esp + 0x1c], eax
cmp ecx, 0x28
je 0x4af3fe
mov dword [esp + 0x30], ebp
cmp ecx, 0x35
jne 0x4af406
mov dword [esp + 0x30], 1
lea edi, [ebx + 4]
jmp 0x4af4a4
mov edi, dword [esp + 0x10]
xor ebp, ebp
mov dword [esp + 0x38], 1
add edi, 2
mov dword [esp + 0x1c], connect
jmp 0x4af4a0
mov edi, dword [esp + 0x10]
mov ebp, 1
mov dword [esp + 0x38], 1
add edi, 2
mov dword [esp + 0x1c], connect
jmp 0x4af4a0
mov edi, dword [esp + 0x10]
xor ebp, ebp
mov dword [esp + 0x38], 1
add edi, 2
mov dword [esp + 0x1c], 1
jmp 0x4af4a0
mov edi, dword [esp + 0x10]
cmp edx, 0x2e
mov ecx, edx
sbb eax, eax
add edi, 2
and eax, 0xfffffff3
add eax, 0x2e
sub ecx, eax
mov eax, ecx
and ecx, 1
mov dword [esp + 0x30], ecx
mov ecx, SysReAllocString
movsx ebp, byte [eax + 0x4bd22c]
movsx eax, byte [eax + 0x4bd224]
test eax, eax
cmove eax, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ebp
movzx ebx, word [edi]
mov ecx, 1
mov eax, ebx
mov dword [esp + 0x20], edi
and eax, 0xfc00
mov dword [esp + 0x18], ecx
cmp eax, 0xd800
jne 0x4af4e5
movzx eax, word [edi + 2]
and ebx, 0x3ff
and eax, 0x3ff
shl ebx, 0xa
or ebx, eax
mov ecx, 2
add ebx, 0x10000
mov dword [esp + 0x18], ecx
lea eax, [edi + ecx*2]
mov dword [esp + 0x10], eax
cmp ecx, 1
jbe 0x4af8ba
cmp edx, 0x2e
jb 0x4af534
mov eax, ebx
shr eax, 7
movzx ecx, byte [eax + 0x4ca058]
mov eax, ebx
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4bd678]
mov ecx, dword [eax*8 + 0x4c8f7c]
add ecx, ebx
cmp ecx, ebx
je 0x4af534
lea edx, [esp + 0x74]
call fcn.004b5b30
mov dword [esp + 0x2c], eax
jmp 0x4af53c
mov dword [esp + 0x2c], 0
mov edi, dword [esp + 0x24]
mov ebp, 1
cmp edi, ebp
jl 0x4af67c
mov eax, dword [esp + 0x174]
mov edx, dword [esp + 0x18]
mov ecx, dword [eax + 0x7c]
mov eax, ecx
lea ebx, [edx + edx]
mov dword [esp + 0x28], ecx
sub eax, ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x48], eax
nop
cmp esi, eax
ja 0x4af5dd
lea edi, [edx + edx]
mov ecx, esi
mov edx, dword [esp + 0x20]
sub edi, 4
jb 0x4af593
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4af59c
add ecx, 4
add edx, 4
sub edi, 4
jae 0x4af582
cmp edi, 0xfffffffc
je 0x4af659
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4af5d9
cmp edi, 0xfffffffd
je 0x4af659
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4af5d9
cmp edi, 0xfffffffe
je 0x4af659
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4af5d9
cmp edi, 0xffffffff
je 0x4af659
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4af659
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
test edx, edx
jle 0x4b2655
lea ebx, [edx + edx]
mov eax, ecx
sub eax, ebx
cmp esi, eax
ja 0x4b2655
lea edi, [edx + edx]
mov ecx, esi
lea edx, [esp + 0x74]
sub edi, 4
jb 0x4af617
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4af61c
add ecx, 4
add edx, 4
sub edi, 4
jae 0x4af606
cmp edi, 0xfffffffc
je 0x4af659
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4b2655
cmp edi, 0xfffffffd
je 0x4af659
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4b2655
cmp edi, 0xfffffffe
je 0x4af659
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4b2655
cmp edi, 0xffffffff
je 0x4af659
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4b2655
mov edi, dword [esp + 0x24]
add esi, ebx
mov eax, dword [esp + 0x48]
inc ebp
mov ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x14], esi
cmp ebp, edi
jle 0x4af570
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x170]
cmp edi, ebp
je 0x4ace32
cmp dword [esp + 0x30], 0
jne 0x4b2b2d
mov ebx, esi
mov dword [esp + 0x30], ebx
cmp edi, ebp
jge 0x4af7d1
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 0x7c]
mov ebp, eax
lea ebx, [ecx + ecx]
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], ebx
sub ebp, ebx
cmp esi, ebp
ja 0x4af72e
mov edx, dword [esp + 0x20]
lea edi, [ecx + ecx]
mov ecx, esi
sub edi, 4
jb 0x4af6e8
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4af6f1
add ecx, 4
add edx, 4
sub edi, 4
jae 0x4af6d7
cmp edi, 0xfffffffc
je 0x4af7a8
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4af72a
cmp edi, 0xfffffffd
je 0x4af7a8
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4af72a
cmp edi, 0xfffffffe
je 0x4af7a8
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4af72a
cmp edi, 0xffffffff
je 0x4af7a8
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4af7a8
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jle 0x4af880
lea ebx, [ecx + ecx]
sub eax, ebx
cmp esi, eax
ja 0x4af880
lea edi, [ecx + ecx]
mov ecx, esi
lea edx, [esp + 0x74]
sub edi, 4
jb 0x4af766
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4af76b
add ecx, 4
add edx, 4
sub edi, 4
jae 0x4af755
cmp edi, 0xfffffffc
je 0x4af7a8
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4af880
cmp edi, 0xfffffffd
je 0x4af7a8
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4af880
cmp edi, 0xfffffffe
je 0x4af7a8
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4af880
cmp edi, 0xffffffff
je 0x4af7a8
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4af880
mov edi, dword [esp + 0x24]
add esi, ebx
mov ebx, dword [esp + 0x40]
inc edi
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], esi
mov dword [esp + 0x24], edi
cmp edi, dword [esp + 0x1c]
jl 0x4af6c5
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x174]
cmp dword [esp + 0x38], 0
jne 0x4ace4c
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov ebp, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, ebp
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
nop word [eax + eax]
mov ecx, esi
cmp esi, ebx
je case.0x4ace89.151
mov ax, word [esi - 2]
sub esi, 2
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4af846
lea esi, [ecx - 4]
mov eax, dword [esp + 0x17c]
mov edx, ebp
inc eax
mov ecx, esi
push eax
push dword [esp + 0x17c]
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4af820
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov edi, dword [esp + 0x174]
cmp dword [edi + 0x8c], 0
je 0x4af8b1
cmp esi, dword [edi + 0x7c]
jb 0x4af8b1
cmp esi, dword [edi + 0x88]
jbe 0x4af8b1
mov dword [edi + 0x64], 1
cmp dword [edi + 0x8c], 1
jg 0x4b3fe6
mov ebx, dword [esp + 0x30]
jmp 0x4af7d8
cmp edx, 0x2e
jb 0x4afa28
cmp ebx, 0x7f
jbe 0x4af8f1
mov eax, ebx
shr eax, 7
movzx ecx, byte [eax + 0x4ca058]
mov eax, ebx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4bd678]
mov edi, dword [eax*8 + 0x4c8f7c]
add edi, ebx
jmp 0x4af90b
cmp ebx, 0xff
ja 0x4af909
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x38]
movzx edi, byte [eax + ebx]
jmp 0x4af90b
mov edi, ebx
mov ecx, 1
cmp ebp, ecx
jl 0x4af943
mov eax, dword [esp + 0x174]
mov edx, dword [eax + 0x7c]
nop
cmp esi, edx
jae 0x4b2622
movzx eax, word [esi]
cmp ebx, eax
je 0x4af937
cmp edi, eax
jne case.0x4ace89.151
add esi, 2
inc ecx
mov dword [esp + 0x14], esi
cmp ecx, ebp
jle 0x4af920
mov eax, dword [esp + 0x1c]
cmp ebp, eax
je 0x4ace45
cmp dword [esp + 0x30], 0
jne 0x4b2ce9
mov edx, dword [esp + 0x24]
mov ebp, esi
cmp edx, eax
jge 0x4af991
mov eax, dword [esp + 0x174]
mov ecx, dword [eax + 0x7c]
nop
cmp esi, ecx
jae 0x4af9f7
movzx eax, word [esi]
cmp ebx, eax
je 0x4af983
cmp edi, eax
jne 0x4af991
add esi, 2
inc edx
mov dword [esp + 0x14], esi
cmp edx, dword [esp + 0x1c]
jl 0x4af970
mov edi, dword [esp + 0x174]
cmp dword [esp + 0x38], 0
jne 0x4ace4c
cmp esi, ebp
jb case.0x4ace89.151
nop dword [eax + eax]
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
sub esi, 2
test eax, eax
jne 0x4b2416
cmp esi, ebp
jae 0x4af9b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov edi, dword [esp + 0x174]
cmp dword [edi + 0x8c], 0
je 0x4af998
cmp esi, dword [edi + 0x88]
jbe 0x4af998
mov dword [edi + 0x64], 1
cmp dword [edi + 0x8c], 1
jg 0x4b3fe6
jmp 0x4af998
mov edi, dword [esp + 0x174]
mov ecx, 1
cmp ebp, ecx
jl 0x4afa5f
mov edx, dword [edi + 0x7c]
nop dword [eax + eax]
cmp esi, edx
jae 0x4b25f6
movzx eax, word [esi]
add esi, 2
mov dword [esp + 0x14], esi
cmp ebx, eax
jne case.0x4ace89.151
inc ecx
cmp ecx, ebp
jle 0x4afa40
mov edx, dword [esp + 0x1c]
cmp ebp, edx
je 0x4ace4c
cmp dword [esp + 0x30], 0
jne 0x4b2d8d
mov edi, esi
cmp ebp, edx
jge 0x4afacb
mov eax, dword [esp + 0x174]
mov ecx, dword [eax + 0x7c]
cmp esi, ecx
jae 0x4afa9f
movzx eax, word [esi]
cmp ebx, eax
jne 0x4afacb
add esi, 2
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, edx
jl 0x4afa86
jmp 0x4afacb
mov eax, dword [esp + 0x174]
cmp dword [eax + 0x8c], 0
je 0x4afacb
cmp esi, dword [eax + 0x88]
jbe 0x4afacb
mov dword [eax + 0x64], 1
cmp dword [eax + 0x8c], 1
jg 0x4b3fe6
cmp dword [esp + 0x38], 0
jne 0x4ace45
cmp esi, edi
jb case.0x4ace89.151
nop
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
sub esi, 2
test eax, eax
jne 0x4b2416
cmp esi, edi
jae 0x4afae0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
cmp esi, dword [edi + 0x7c]
jae 0x4b25f6
movzx edi, word [esi]
add esi, 2
mov ecx, dword [esp + 0x10]
mov eax, edi
and eax, 0xfc00
mov dword [esp + 0x14], esi
cmp eax, 0xd800
jne 0x4afb72
movzx eax, word [esi]
and edi, 0x3ff
and eax, 0x3ff
shl edi, 0xa
add esi, 2
or edi, eax
mov dword [esp + 0x14], esi
add edi, 0x10000
movzx edx, word [ecx + 2]
lea eax, [ecx + 4]
mov dword [esp + 0x10], eax
cmp ebp, 0x20
jne 0x4afbd9
cmp edx, 0x7f
jbe 0x4afbb0
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ca058]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4bd678]
mov eax, dword [eax*8 + 0x4c8f7c]
add eax, edx
jmp 0x4afbca
cmp edx, 0xff
ja 0x4afbc8
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x38]
movzx eax, byte [eax + edx]
jmp 0x4afbca
mov eax, edx
cmp edx, edi
je case.0x4ace89.151
cmp eax, edi
jmp 0x4ace3f
mov dword [esp + 0x10], eax
cmp edx, edi
jmp 0x4ace3f
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + 2]
add ecx, 4
mov dword [esp + 0x1c], eax
mov ebx, eax
jmp 0x4afcc3
mov edx, dword [esp + 0x10]
xor ebx, ebx
movzx eax, word [edx + 2]
mov dword [esp + 0x1c], eax
cmp ecx, 0x42
je 0x4afc16
mov dword [esp + 0x30], ebx
cmp ecx, 0x4f
jne 0x4afc1e
mov dword [esp + 0x30], 1
lea ecx, [edx + 4]
jmp 0x4afcc3
mov ecx, dword [esp + 0x10]
xor ebx, ebx
mov dword [esp + 0x38], 1
add ecx, 2
jmp 0x4afcbb
mov ecx, dword [esp + 0x10]
mov ebx, 1
mov dword [esp + 0x38], 1
add ecx, 2
jmp 0x4afcbb
mov ecx, dword [esp + 0x10]
xor ebx, ebx
mov dword [esp + 0x38], 1
add ecx, 2
mov dword [esp + 0x1c], 1
jmp 0x4afcc3
mov ecx, dword [esp + 0x10]
xor ebx, ebx
mov dword [esp + 0x38], 1
movzx eax, word [ecx + 2]
add ecx, 4
mov dword [esp + 0x1c], eax
jmp 0x4afcc3
mov ecx, dword [esp + 0x10]
cmp edx, 0x48
sbb eax, eax
add ecx, 2
and eax, 0xfffffff3
add eax, 0x48
sub edx, eax
mov eax, edx
and edx, 1
mov dword [esp + 0x30], edx
movsx ebx, byte [eax + 0x4bd22c]
movsx eax, byte [eax + 0x4bd224]
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x4afcc3
mov dword [esp + 0x1c], connect
movzx edi, word [ecx]
lea edx, [ecx + 2]
mov dword [esp + 0x24], edi
mov dword [esp + 0x10], edx
cmp ebp, 0x48
jb 0x4aff00
cmp edi, 0x7f
jbe 0x4afd08
mov eax, edi
shr eax, 7
movzx ecx, byte [eax + 0x4ca058]
mov eax, edi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4bd678]
mov ebp, dword [eax*8 + 0x4c8f7c]
add ebp, edi
jmp 0x4afd22
cmp edi, 0xff
ja 0x4afd20
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0x38]
movzx ebp, byte [eax + edi]
jmp 0x4afd29
mov ebp, edi
mov ecx, dword [esp + 0x174]
mov dword [esp + 0x2c], ebp
cmp ebx, 1
jl 0x4afd9f
mov edi, dword [ecx + 0x7c]
mov edx, 1
nop word [eax + eax]
cmp esi, edi
jae 0x4b2e20
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4afd80
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [esp + 0x14], esi
cmp dword [esp + 0x24], ecx
je case.0x4ace89.151
cmp ebp, ecx
je case.0x4ace89.151
inc edx
cmp edx, ebx
jle 0x4afd40
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
cmp ebx, eax
je 0x4af044
cmp dword [esp + 0x30], 0
jne 0x4b2e53
mov ebp, esi
cmp ebx, eax
jge 0x4afe1d
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
cmp esi, edi
jae 0x4afec7
movzx ecx, word [esi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4afe03
movzx eax, word [esi + 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 0x4afe1d
cmp dword [esp + 0x2c], ecx
je 0x4afe1d
inc ebx
lea esi, [esi + edx*2]
mov dword [esp + 0x14], esi
cmp ebx, dword [esp + 0x1c]
jl 0x4afdc6
mov edi, dword [esp + 0x174]
cmp dword [esp + 0x38], 0
jne 0x4ace4c
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, ebx
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
mov eax, esi
mov ecx, esi
sub esi, 2
cmp eax, ebp
je case.0x4ace89.151
mov ax, word [esi]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4afe8d
lea esi, [ecx - 4]
mov eax, dword [esp + 0x17c]
mov edx, ebx
inc eax
mov ecx, esi
push eax
push dword [esp + 0x17c]
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4afe66
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov edi, dword [esp + 0x174]
cmp dword [edi + 0x8c], 0
je 0x4afe24
cmp esi, dword [edi + 0x88]
jbe 0x4afe24
mov dword [edi + 0x64], 1
cmp dword [edi + 0x8c], 1
jg 0x4b3fe6
jmp 0x4afe24
mov ebp, dword [esp + 0x174]
mov edx, 1
cmp ebx, edx
jl 0x4aff66
mov edi, dword [ebp + 0x7c]
cmp esi, edi
jae 0x4b2f57
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4aff53
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [esp + 0x14], esi
cmp dword [esp + 0x24], ecx
je case.0x4ace89.151
inc edx
cmp edx, ebx
jle 0x4aff13
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
cmp ebx, eax
je 0x4af044
cmp dword [esp + 0x30], 0
jne 0x4b2f83
mov ebp, esi
cmp ebx, eax
jge 0x4affe2
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
cmp esi, edi
jae 0x4b0091
movzx ecx, word [esi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4affce
movzx eax, word [esi + 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 0x4affe2
inc ebx
lea esi, [esi + edx*2]
mov dword [esp + 0x14], esi
cmp ebx, dword [esp + 0x1c]
jl 0x4aff91
mov edi, dword [esp + 0x174]
cmp dword [esp + 0x38], 0
jne 0x4ace4c
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, ebx
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
nop dword [eax + eax]
mov eax, esi
mov ecx, esi
sub esi, 2
cmp eax, ebp
je case.0x4ace89.151
mov ax, word [esi]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4b0057
lea esi, [ecx - 4]
mov eax, dword [esp + 0x17c]
mov edx, ebx
inc eax
mov ecx, esi
push eax
push dword [esp + 0x17c]
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b0030
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov edi, dword [esp + 0x174]
cmp dword [edi + 0x8c], 0
je 0x4affe9
cmp esi, dword [edi + 0x88]
jbe 0x4affe9
mov dword [edi + 0x64], 1
cmp dword [edi + 0x8c], 1
jg 0x4b3fe6
jmp 0x4affe9
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], 1
movzx eax, word [ecx + 2]
mov ebp, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebp
lea eax, [ecx + 4]
jmp 0x4b01bd
mov edx, dword [esp + 0x10]
xor ebx, ebx
xor ebp, ebp
cmp ecx, 0x5c
mov dword [esp + 0x24], ebp
sete bl
movzx eax, word [edx + 2]
mov dword [esp + 0x20], eax
lea eax, [edx + 4]
mov dword [esp + 0x30], ebx
jmp 0x4b01bd
mov eax, dword [esp + 0x10]
xor ebp, ebp
mov dword [esp + 0x38], 1
add eax, 2
mov dword [esp + 0x24], ebp
jmp 0x4b01b5
mov eax, dword [esp + 0x10]
mov ebp, 1
mov dword [esp + 0x38], 1
add eax, 2
mov dword [esp + 0x24], ebp
jmp 0x4b01b5
mov eax, dword [esp + 0x10]
xor ebp, ebp
mov dword [esp + 0x38], 1
add eax, 2
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], 1
jmp 0x4b01bd
mov ecx, dword [esp + 0x10]
xor ebp, ebp
mov dword [esp + 0x38], 1
mov dword [esp + 0x24], ebp
movzx eax, word [ecx + 2]
mov dword [esp + 0x20], eax
lea eax, [ecx + 4]
jmp 0x4b01bd
mov eax, dword [esp + 0x10]
lea ecx, [edx - 1]
movsx ebp, byte [edx + 0x4bd1d7]
and ecx, 1
mov dword [esp + 0x30], ecx
add eax, 2
movsx ecx, byte [edx + 0x4bd1cf]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], ecx
test ecx, ecx
jne 0x4b01bd
mov dword [esp + 0x20], connect
movzx edi, word [eax]
lea edx, [eax + 2]
mov dword [esp + 0x18], edi
mov dword [esp + 0x10], edx
cmp edi, 0x10
je 0x4b01e2
cmp edi, 0xf
je 0x4b01e2
mov ebx, dword [esp + 0x34]
or eax, 0xffffffff
mov dword [esp + 0x2c], eax
jmp 0x4b0208
movzx ecx, word [edx]
lea eax, [edx + 2]
movzx edx, word [eax]
xor ebx, ebx
cmp edi, 0xf
mov dword [esp + 0x3c], edx
mov dword [esp + 0x2c], ecx
sete bl
add eax, 2
mov dword [esp + 0x10], eax
mov eax, ecx
mov dword [esp + 0x34], ebx
test ebp, ebp
jle 0x4b0695
test eax, eax
js 0x4b084d
cmp eax, 8
ja case.default.0x4aea9e
jmp dword [eax*4 + 0x4b47cc]
test ebx, ebx
jne case.0x4ace89.151
lea edx, [ebx + 1]
mov ebx, dword [esp + 0x174]
cmp ebp, edx
jl 0x4b069c
mov edi, dword [ebx + 0x7c]
mov ecx, esi
cmp esi, edi
jae 0x4b3fb9
movzx eax, word [esi]
add esi, 2
and eax, 0xfc00
mov dword [esp + 0x14], esi
cmp eax, 0xd800
jne 0x4b026c
lea esi, [ecx + 4]
mov dword [esp + 0x14], esi
inc edx
cmp edx, ebp
jle 0x4b0245
mov edi, dword [esp + 0x18]
jmp 0x4b069c
mov ebx, dword [esp + 0x174]
mov edx, 1
cmp ebp, edx
jl 0x4b069c
mov edi, dword [ebx + 0x7c]
cmp esi, edi
jae 0x4b3fb9
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b02d1
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
add esi, 2
or ecx, eax
mov dword [esp + 0x14], esi
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ca058]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4bd678]
mov al, byte [eax*8 + 0x4c8f79]
cmp al, 9
je 0x4b0304
cmp al, 5
je 0x4b0304
cmp al, 8
je 0x4b0304
xor eax, eax
jmp 0x4b0309
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.0x4ace89.151
inc edx
cmp edx, ebp
jle 0x4b0291
mov edi, dword [esp + 0x18]
jmp 0x4b069c
mov ebx, dword [esp + 0x174]
mov edx, 1
cmp ebp, edx
jl 0x4b069c
mov edi, dword [ebx + 0x7c]
nop dword [eax]
cmp esi, edi
jae 0x4b3fb9
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b0380
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
add esi, 2
or ecx, eax
mov dword [esp + 0x14], esi
add ecx, 0x10000
mov ebx, dword [esp + 0x3c]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x4ca058]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
cmp dword [eax*4 + 0x4cc638], ebx
mov ebx, dword [esp + 0x174]
sete cl
cmp ecx, dword [esp + 0x34]
je case.0x4ace89.151
inc edx
cmp edx, ebp
jle 0x4b0340
mov edi, dword [esp + 0x18]
jmp 0x4b069c
mov ebx, dword [esp + 0x174]
mov edx, 1
cmp ebp, edx
jl 0x4b069c
mov edi, dword [ebx + 0x7c]
nop
cmp esi, edi
jae 0x4b3fb9
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b0430
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
add esi, 2
or ecx, eax
mov dword [esp + 0x14], esi
add ecx, 0x10000
mov eax, ecx
mov ebx, dword [esp + 0x174]
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x4ca058]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
cmp eax, dword [esp + 0x3c]
sete cl
cmp ecx, dword [esp + 0x34]
je case.0x4ace89.151
inc edx
cmp edx, ebp
jle 0x4b03f0
mov edi, dword [esp + 0x18]
jmp 0x4b069c
mov ebx, dword [esp + 0x174]
mov edx, 1
cmp ebp, edx
jl 0x4b069c
mov edi, dword [ebx + 0x7c]
cmp esi, edi
jae 0x4b3fb9
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b04d7
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
add esi, 2
or ecx, eax
mov dword [esp + 0x14], esi
add ecx, 0x10000
mov eax, ecx
mov ebx, dword [esp + 0x174]
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x4ca058]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f78]
cmp eax, dword [esp + 0x3c]
sete cl
cmp ecx, dword [esp + 0x34]
je case.0x4ace89.151
inc edx
cmp edx, ebp
jle 0x4b0497
mov edi, dword [esp + 0x18]
jmp 0x4b069c
mov ebx, dword [esp + 0x174]
mov edx, 1
cmp ebp, edx
jl 0x4b069c
mov edi, dword [ebx + 0x7c]
nop
cmp esi, edi
jae 0x4b3fb9
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b0580
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
add esi, 2
or ecx, eax
mov dword [esp + 0x14], esi
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ca058]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
mov eax, dword [eax*4 + 0x4cc638]
cmp eax, 1
je 0x4b05b9
cmp eax, 3
je 0x4b05b9
xor eax, eax
jmp 0x4b05be
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.0x4ace89.151
inc edx
cmp edx, ebp
jle 0x4b0540
mov edi, dword [esp + 0x18]
jmp 0x4b069c
mov edi, 1
cmp ebp, edi
jl 0x4b0691
mov eax, dword [esp + 0x174]
mov ebx, dword [eax + 0x7c]
cmp esi, ebx
jae 0x4b2622
movzx edx, word [esi]
add esi, 2
mov eax, edx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b0631
movzx eax, word [esi]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
add esi, 2
or edx, eax
mov dword [esp + 0x14], esi
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ca058]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
cmp dword [eax*4 + 0x4cc638], 6
je 0x4b0679
cmp edx, 9
je 0x4b0679
cmp edx, 0xa
je 0x4b0679
cmp edx, 0xc
je 0x4b0679
cmp edx, 0xd
je 0x4b0679
xor eax, eax
jmp 0x4b067e
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.0x4ace89.151
inc edi
cmp edi, ebp
jle 0x4b05f1
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x174]
mov edx, dword [esp + 0x20]
cmp ebp, edx
je 0x4ace45
cmp dword [esp + 0x30], 0
mov eax, dword [esp + 0x2c]
jne 0x4b3211
mov ebx, esi
mov dword [esp + 0x1c], ebx
test eax, eax
js 0x4b1758
cmp eax, 8
ja case.default.0x4aea9e
jmp dword [eax*4 + 0x4b47f0]
mov edi, 1
cmp ebp, edi
jl 0x4b0691
mov eax, dword [esp + 0x174]
mov ebx, dword [eax + 0x7c]
cmp esi, ebx
jae 0x4b2622
movzx edx, word [esi]
add esi, 2
mov eax, edx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b0728
movzx eax, word [esi]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
add esi, 2
or edx, eax
mov dword [esp + 0x14], esi
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ca058]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
cmp dword [eax*4 + 0x4cc638], 6
je 0x4b0775
cmp edx, 9
je 0x4b0775
cmp edx, 0xa
je 0x4b0775
cmp edx, 0xb
je 0x4b0775
cmp edx, 0xc
je 0x4b0775
cmp edx, 0xd
je 0x4b0775
xor eax, eax
jmp 0x4b077a
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.0x4ace89.151
inc edi
cmp edi, ebp
jle 0x4b06e8
jmp 0x4b0691
mov edi, 1
cmp ebp, edi
jl 0x4b0691
mov eax, dword [esp + 0x174]
mov ebx, dword [eax + 0x7c]
nop dword [eax]
cmp esi, ebx
jae 0x4b2622
movzx edx, word [esi]
add esi, 2
mov eax, edx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b07f0
movzx eax, word [esi]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
add esi, 2
or edx, eax
mov dword [esp + 0x14], esi
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ca058]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
mov eax, dword [eax*4 + 0x4cc638]
cmp eax, 1
je 0x4b0830
cmp eax, 3
je 0x4b0830
cmp edx, 0x5f
je 0x4b0830
xor eax, eax
jmp 0x4b0835
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.0x4ace89.151
inc edi
cmp edi, ebp
jle 0x4b07b0
jmp 0x4b0691
cmp edi, 0x16
jne 0x4b0981
mov ebx, dword [esp + 0x174]
mov ebp, 1
cmp dword [esp + 0x24], ebp
jl 0x4b1085
nop dword [eax]
cmp esi, dword [ebx + 0x7c]
jae 0x4b3fb9
movzx ecx, word [esi]
lea edx, [esi + 2]
mov eax, ecx
mov esi, edx
and eax, 0xfc00
mov dword [esp + 0x14], esi
cmp eax, 0xd800
jne 0x4b08b3
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
add esi, 2
or ecx, eax
mov dword [esp + 0x14], esi
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ca058]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
cmp dword [eax*4 + 0x4cc638], 2
je case.0x4ace89.151
mov edi, dword [ebx + 0x7c]
cmp esi, edi
jae 0x4b0969
mov ebx, esi
movzx ecx, word [esi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b0927
movzx eax, word [esi + 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 + 0x4ca058]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
cmp dword [eax*4 + 0x4cc638], 2
jne 0x4b095e
lea esi, [ebx + edx*2]
mov ebx, esi
cmp esi, edi
jb 0x4b08f2
mov ebx, dword [esp + 0x174]
mov dword [esp + 0x14], esi
inc ebp
cmp ebp, dword [esp + 0x24]
jle 0x4b0870
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
jmp 0x4b069c
lea eax, [edi - 6]
cmp eax, 0xf
ja case.default.0x4aea9e
jmp dword [eax*4 + 0x4b4814]
mov ebx, dword [esp + 0x174]
mov edi, 1
cmp ebp, edi
jl 0x4b0a38
mov ecx, dword [ebx + 0x7c]
nop dword [eax + eax]
cmp esi, ecx
jae 0x4b3fb9
mov edx, dword [ebx + 0x18]
lea eax, [ebx + 0x1c]
test edx, edx
je 0x4b09da
push 1
push eax
push ecx
mov ecx, esi
call fcn.004b5b90
add esp, 0xc
test eax, eax
jne case.0x4ace89.151
jmp 0x4b0a05
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x4b0a05
mov ax, word [esi]
cmp ax, word [ebx + 0x2c]
jne 0x4b0a05
cmp edx, 1
je case.0x4ace89.151
mov ax, word [esi + 2]
cmp ax, word [ebx + 0x2e]
je case.0x4ace89.151
mov ecx, dword [ebx + 0x7c]
add esi, 2
mov dword [esp + 0x14], esi
cmp esi, ecx
jae 0x4b0a2f
mov ax, word [esi]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4b0a2f
add esi, 2
mov dword [esp + 0x14], esi
inc edi
cmp edi, ebp
jle 0x4b09b0
mov edi, dword [esp + 0x18]
jmp 0x4b069c
mov ebx, dword [esp + 0x174]
mov ecx, 1
cmp ebp, ecx
jl 0x4b069c
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x4b3fb9
add esi, 2
mov dword [esp + 0x14], esi
cmp esi, edx
jae 0x4b0a81
mov ax, word [esi]
and ax, word [esp + 0x64]
cmp ax, word [esp + 0x68]
jne 0x4b0a81
add esi, 2
mov dword [esp + 0x14], esi
inc ecx
cmp ecx, ebp
jle 0x4b0a58
jmp 0x4b069c
mov ebx, dword [esp + 0x174]
lea ecx, [ebp*2]
mov eax, dword [ebx + 0x7c]
sub eax, ecx
cmp esi, eax
ja case.0x4ace89.151
add esi, ecx
mov dword [esp + 0x14], esi
jmp 0x4b069c
mov edi, 1
cmp ebp, edi
jl 0x4b0691
mov eax, dword [esp + 0x174]
mov ebx, dword [eax + 0x7c]
cmp esi, ebx
jae 0x4b2629
movzx ecx, word [esi]
lea edx, [esi + 2]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b0b00
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edx, 2
cmp ecx, 0xd
ja 0x4b0b4c
je 0x4b0b28
cmp ecx, 0xa
je 0x4b0b11
lea eax, [ecx - 0xb]
jmp 0x4b0b5a
mov esi, edx
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x174]
inc edi
cmp edi, ebp
jle 0x4b0ac8
jmp 0x4b0691
mov esi, edx
mov dword [esp + 0x14], esi
cmp edx, ebx
jae 0x4b0b17
cmp word [edx], 0xa
mov eax, dword [esp + 0x174]
mov dword [esp + 0x14], esi
jne 0x4b0b1e
lea esi, [edx + 2]
mov dword [esp + 0x14], esi
jmp 0x4b0b1e
cmp ecx, 0x85
je 0x4b0b63
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x4ace89.151
mov eax, dword [esp + 0x174]
mov esi, edx
mov dword [esp + 0x14], esi
cmp dword [eax + 0x68], 0
jne case.0x4ace89.151
jmp 0x4b0b1e
mov ebx, dword [esp + 0x174]
mov edx, 1
cmp ebp, edx
jl 0x4b069c
mov edi, dword [ebx + 0x7c]
cmp esi, edi
jae 0x4b3fb9
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b0bd3
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [esp + 0x14], esi
cmp ecx, 0x180e
ja 0x4b0c05
je case.0x4ace89.151
cmp ecx, 0xa0
ja 0x4b0bfd
je case.0x4ace89.151
cmp ecx, 9
je case.0x4ace89.151
cmp ecx, 0x20
jmp 0x4b0c35
cmp ecx, 0x1680
jmp 0x4b0c35
cmp ecx, 0x205f
ja 0x4b0c2f
je case.0x4ace89.151
cmp ecx, 0x2000
jb 0x4b0c3b
cmp ecx, 0x200a
jbe case.0x4ace89.151
cmp ecx, 0x202f
jmp 0x4b0c35
cmp ecx, 0x3000
je case.0x4ace89.151
inc edx
cmp edx, ebp
jle 0x4b0b93
mov edi, dword [esp + 0x18]
jmp 0x4b069c
mov ebx, dword [esp + 0x174]
mov edx, 1
cmp ebp, edx
jl 0x4b069c
mov edi, dword [ebx + 0x7c]
cmp esi, edi
jae 0x4b3fb9
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b0ca4
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [esp + 0x14], esi
cmp ecx, 0x180e
ja 0x4b0cca
je 0x4b0cfc
cmp ecx, 0xa0
ja 0x4b0cc2
je 0x4b0cfc
cmp ecx, 9
je 0x4b0cfc
cmp ecx, 0x20
jmp 0x4b0cf6
cmp ecx, 0x1680
jmp 0x4b0cf6
cmp ecx, 0x205f
ja 0x4b0cf0
je 0x4b0cfc
cmp ecx, 0x2000
jb case.0x4ace89.151
cmp ecx, 0x200a
jbe 0x4b0cfc
cmp ecx, 0x202f
jmp 0x4b0cf6
cmp ecx, 0x3000
jne case.0x4ace89.151
inc edx
cmp edx, ebp
jle 0x4b0c64
mov edi, dword [esp + 0x18]
jmp 0x4b069c
mov ebx, dword [esp + 0x174]
mov edx, 1
cmp ebp, edx
jl 0x4b069c
mov edi, dword [ebx + 0x7c]
cmp esi, edi
jae 0x4b3fb9
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b0d65
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [esp + 0x14], esi
cmp ecx, 0x85
ja 0x4b0d7d
je case.0x4ace89.151
cmp ecx, 0xa
jb 0x4b0d91
cmp ecx, 0xd
jmp 0x4b0d8b
cmp ecx, 0x2028
jb 0x4b0d91
cmp ecx, 0x2029
jbe case.0x4ace89.151
inc edx
cmp edx, ebp
jle 0x4b0d25
mov edi, dword [esp + 0x18]
jmp 0x4b069c
mov ebx, dword [esp + 0x174]
mov edx, 1
cmp ebp, edx
jl 0x4b069c
mov edi, dword [ebx + 0x7c]
cmp esi, edi
jae 0x4b3fb9
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b0df6
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [esp + 0x14], esi
cmp ecx, 0x85
ja 0x4b0e08
je 0x4b0e17
lea eax, [ecx - 0xa]
cmp eax, 3
jmp 0x4b0e11
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x4ace89.151
inc edx
cmp edx, ebp
jle 0x4b0db6
mov edi, dword [esp + 0x18]
jmp 0x4b069c
mov ebx, dword [esp + 0x174]
mov edx, 1
cmp ebp, edx
jl 0x4b069c
mov edi, dword [ebx + 0x7c]
nop dword [eax]
cmp esi, edi
jae 0x4b3fb9
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov dword [esp + 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b0e80
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [esp + 0x14], esi
cmp ecx, 0x80
jae 0x4b0e95
mov eax, dword [ebx + 0x3c]
test byte [ecx + eax], 4
jne case.0x4ace89.151
inc edx
cmp edx, ebp
jle 0x4b0e40
mov edi, dword [esp + 0x18]
jmp 0x4b069c
mov ebx, dword [esp + 0x174]
mov edx, 1
cmp ebp, edx
jl 0x4b069c
mov edi, dword [ebx + 0x7c]
nop word [eax + eax]
cmp esi, edi
jae 0x4b3fb9
movzx eax, word [esi]
mov ecx, 0x80
cmp ax, cx
jae case.0x4ace89.151
mov ecx, eax
mov eax, dword [ebx + 0x3c]
test byte [ecx + eax], 4
je case.0x4ace89.151
add esi, 2
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x4b0ec0
mov edi, dword [esp + 0x18]
jmp 0x4b069c
mov ebx, dword [esp + 0x174]
mov edx, 1
cmp ebp, edx
jl 0x4b069c
mov edi, dword [ebx + 0x7c]
cmp esi, edi
jae 0x4b3fb9
movzx eax, word [esi]
mov ecx, 0x80
cmp ax, cx
jae 0x4b0f38
mov ecx, eax
mov eax, dword [ebx + 0x3c]
test byte [ecx + eax], 1
jne case.0x4ace89.151
add esi, 2
mov dword [esp + 0x14], esi
cmp esi, edi
jae 0x4b0f5f
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4b0f5f
add esi, 2
mov dword [esp + 0x14], esi
inc edx
cmp edx, ebp
jle 0x4b0f14
mov edi, dword [esp + 0x18]
jmp 0x4b069c
mov ebx, dword [esp + 0x174]
mov edx, 1
cmp ebp, edx
jl 0x4b069c
mov edi, dword [ebx + 0x7c]
cmp esi, edi
jae 0x4b3fb9
movzx eax, word [esi]
mov ecx, 0x80
cmp ax, cx
jae case.0x4ace89.151
mov ecx, eax
mov eax, dword [ebx + 0x3c]
test byte [ecx + eax], 1
je case.0x4ace89.151
add esi, 2
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x4b0f84
mov edi, dword [esp + 0x18]
jmp 0x4b069c
mov ebx, dword [esp + 0x174]
mov edx, 1
cmp ebp, edx
jl 0x4b069c
mov edi, dword [ebx + 0x7c]
cmp esi, edi
jae 0x4b3fb9
movzx eax, word [esi]
mov ecx, 0x80
cmp ax, cx
jae 0x4b0ffc
mov ecx, eax
mov eax, dword [ebx + 0x3c]
test byte [ecx + eax], 0x10
jne case.0x4ace89.151
add esi, 2
mov dword [esp + 0x14], esi
cmp esi, edi
jae 0x4b1023
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4b1023
add esi, 2
mov dword [esp + 0x14], esi
inc edx
cmp edx, ebp
jle 0x4b0fd8
mov edi, dword [esp + 0x18]
jmp 0x4b069c
mov edx, 1
cmp ebp, edx
jl 0x4b0695
mov ebx, dword [esp + 0x174]
mov edi, dword [ebx + 0x7c]
cmp esi, edi
jae 0x4b3fb9
movzx eax, word [esi]
mov ecx, 0x80
cmp ax, cx
jae case.0x4ace89.151
mov ecx, eax
mov eax, dword [ebx + 0x3c]
test byte [ecx + eax], 0x10
je case.0x4ace89.151
add esi, 2
inc edx
mov dword [esp + 0x14], esi
cmp edx, ebp
jle 0x4b1048
mov edi, dword [esp + 0x18]
jmp 0x4b069c
mov ebp, dword [esp + 0x24]
jmp 0x4b069c
mov edi, dword [esp + 0x174]
cmp ebp, edx
jge 0x4b16b5
mov edx, dword [edi + 0x7c]
cmp esi, edx
jae 0x4b1190
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
cmp dword [esp + 0x34], 0
movzx ecx, ax
jne 0x4b16b5
xor eax, eax
cmp cx, word [esp + 0x4c]
sete al
inc ebp
lea esi, [esi + eax*2]
add esi, 2
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x20]
jl 0x4b10a0
jmp 0x4b16b5
cmp ebp, edx
jge 0x4b16ae
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
cmp esi, edi
jae 0x4b1189
movzx ecx, word [esi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b1130
movzx eax, word [esi + 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 + 0x4ca058]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4bd678]
mov al, byte [eax*8 + 0x4c8f79]
cmp al, 9
je 0x4b1163
cmp al, 5
je 0x4b1163
cmp al, 8
je 0x4b1163
xor eax, eax
jmp 0x4b1168
mov eax, 1
cmp eax, dword [esp + 0x34]
je 0x4b16ae
inc ebp
lea esi, [esi + edx*2]
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x20]
jl 0x4b10f3
jmp 0x4b16ae
mov edi, dword [esp + 0x174]
cmp dword [edi + 0x8c], 0
je 0x4b16b5
cmp esi, dword [edi + 0x88]
jbe 0x4b16b5
mov dword [edi + 0x64], 1
cmp dword [edi + 0x8c], 1
jg 0x4b3fe6
jmp 0x4b16b5
cmp ebp, edx
jge 0x4b16ae
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
cmp esi, edi
jae 0x4b1189
movzx ecx, word [esi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b120d
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov ebx, dword [esp + 0x3c]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x4ca058]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
cmp dword [eax*4 + 0x4cc638], ebx
mov ebx, dword [esp + 0x1c]
sete cl
cmp ecx, dword [esp + 0x34]
je 0x4b16ae
inc ebp
lea esi, [esi + edx*2]
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x20]
jl 0x4b11d4
jmp 0x4b16ae
cmp ebp, edx
jge 0x4b16ae
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
cmp esi, edi
jae 0x4b1189
movzx ecx, word [esi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b12b5
movzx eax, word [esi + 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 + 0x4ca058]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
cmp eax, dword [esp + 0x3c]
sete cl
cmp ecx, dword [esp + 0x34]
je 0x4b16ae
inc ebp
lea esi, [esi + edx*2]
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x20]
jl 0x4b1278
jmp 0x4b16ae
cmp ebp, edx
jge 0x4b16ae
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
cmp esi, edi
jae 0x4b1189
movzx ecx, word [esi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b1352
movzx eax, word [esi + 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 + 0x4ca058]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f78]
cmp eax, dword [esp + 0x3c]
sete cl
cmp ecx, dword [esp + 0x34]
je 0x4b16ae
inc ebp
lea esi, [esi + edx*2]
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x20]
jl 0x4b1315
jmp 0x4b16ae
cmp ebp, edx
jge 0x4b16ae
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
cmp esi, edi
jae 0x4b1189
movzx ecx, word [esi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b13ef
movzx eax, word [esi + 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 + 0x4ca058]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
mov eax, dword [eax*4 + 0x4cc638]
cmp eax, 1
je 0x4b1428
cmp eax, 3
je 0x4b1428
xor eax, eax
jmp 0x4b142d
mov eax, 1
cmp eax, dword [esp + 0x34]
je 0x4b16ae
inc ebp
lea esi, [esi + edx*2]
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x20]
jl 0x4b13b2
jmp 0x4b16ae
cmp ebp, edx
jge 0x4b16ae
mov eax, dword [esp + 0x174]
mov ebx, dword [eax + 0x7c]
mov edi, 1
cmp esi, ebx
jae 0x4b150b
movzx edx, word [esi]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b149d
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov edi, 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ca058]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
cmp dword [eax*4 + 0x4cc638], 6
je 0x4b14e5
cmp edx, 9
je 0x4b14e5
cmp edx, 0xa
je 0x4b14e5
cmp edx, 0xc
je 0x4b14e5
cmp edx, 0xd
je 0x4b14e5
xor eax, eax
jmp 0x4b14ea
mov eax, 1
cmp eax, dword [esp + 0x34]
je 0x4b16aa
inc ebp
lea esi, [esi + edi*2]
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x20]
jl 0x4b1460
jmp 0x4b16aa
mov edi, dword [esp + 0x174]
cmp dword [edi + 0x8c], 0
je 0x4b1537
cmp esi, dword [edi + 0x88]
jbe 0x4b1537
mov dword [edi + 0x64], 1
cmp dword [edi + 0x8c], 1
jg 0x4b3fe6
mov ebx, dword [esp + 0x1c]
jmp 0x4b16b5
cmp ebp, edx
jge 0x4b16ae
mov eax, dword [esp + 0x174]
mov ebx, dword [eax + 0x7c]
mov edi, 1
cmp esi, ebx
jae 0x4b150b
movzx edx, word [esi]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b158b
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov edi, 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ca058]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
cmp dword [eax*4 + 0x4cc638], 6
je 0x4b15d8
cmp edx, 9
je 0x4b15d8
cmp edx, 0xa
je 0x4b15d8
cmp edx, 0xb
je 0x4b15d8
cmp edx, 0xc
je 0x4b15d8
cmp edx, 0xd
je 0x4b15d8
xor eax, eax
jmp 0x4b15dd
mov eax, 1
cmp eax, dword [esp + 0x34]
je 0x4b16aa
inc ebp
lea esi, [esi + edi*2]
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x20]
jl 0x4b1552
jmp 0x4b16aa
cmp ebp, edx
jge 0x4b16ae
mov eax, dword [esp + 0x174]
mov ebx, dword [eax + 0x7c]
cmp esi, ebx
jae 0x4b150b
movzx edx, word [esi]
mov edi, 1
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b164d
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov edi, 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ca058]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
mov eax, dword [eax*4 + 0x4cc638]
cmp eax, 1
je 0x4b168d
cmp eax, 3
je 0x4b168d
cmp edx, 0x5f
je 0x4b168d
xor eax, eax
jmp 0x4b1692
mov eax, 1
cmp eax, dword [esp + 0x34]
je 0x4b16aa
inc ebp
lea esi, [esi + edi*2]
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x20]
jl 0x4b1610
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x174]
cmp dword [esp + 0x38], 0
jne 0x4ace4c
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov ebp, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, ebp
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
mov eax, esi
mov ecx, esi
sub esi, 2
cmp eax, ebx
je case.0x4ace89.151
mov ax, word [esi]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4b171e
lea esi, [ecx - 4]
mov eax, dword [esp + 0x17c]
mov edx, ebp
inc eax
mov ecx, esi
push eax
push dword [esp + 0x17c]
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b16f7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
cmp edi, 0x16
jne 0x4b18c6
cmp ebp, edx
jge 0x4b18ab
mov ebx, dword [esp + 0x174]
mov ebp, dword [ebx + 0x7c]
cmp esi, ebp
jae 0x4b1882
movzx ecx, word [esi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b17b0
movzx eax, word [esi + 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 + 0x4ca058]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
cmp dword [eax*4 + 0x4cc638], 2
je 0x4b18a7
mov ebx, dword [ebx + 0x7c]
lea esi, [esi + edx*2]
mov dword [esp + 0x14], esi
cmp esi, ebx
jae 0x4b1866
mov edi, esi
movzx ecx, word [esi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b182b
movzx eax, word [esi + 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 + 0x4ca058]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
cmp dword [eax*4 + 0x4cc638], 2
jne 0x4b1862
lea esi, [edi + edx*2]
mov edi, esi
cmp esi, ebx
jb 0x4b17f6
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x174]
inc eax
mov dword [esp + 0x24], eax
cmp eax, dword [esp + 0x20]
jl 0x4b1773
jmp 0x4b18a7
cmp dword [ebx + 0x8c], 0
je 0x4b18a7
cmp esi, dword [ebx + 0x88]
jbe 0x4b18a7
mov dword [ebx + 0x64], 1
cmp dword [ebx + 0x8c], 1
jg 0x4b3fe6
mov ebx, dword [esp + 0x1c]
cmp dword [esp + 0x38], 0
mov edx, dword [esp + 0x10]
je 0x4b3044
mov edi, dword [esp + 0x174]
jmp 0x4ace50
lea eax, [edi - 6]
cmp eax, 0xf
ja case.default.0x4aea9e
jmp dword [eax*4 + 0x4b4854]
cmp edx, 0x7fffffff
jge 0x4b19cd
cmp ebp, edx
jge 0x4b1c0e
mov eax, dword [esp + 0x174]
mov ecx, dword [eax + 0x7c]
cmp esi, ecx
jae 0x4b199b
mov edx, dword [eax + 0x18]
add eax, 0x1c
test edx, edx
je 0x4b1921
push 1
push eax
push ecx
mov ecx, esi
call fcn.004b5b90
add esp, 0xc
test eax, eax
jne 0x4b1c0e
jmp 0x4b1953
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x4b1953
mov ecx, dword [esp + 0x174]
mov ax, word [esi]
cmp ax, word [ecx + 0x2c]
jne 0x4b1953
cmp edx, 1
je 0x4b1c0e
mov ax, word [esi + 2]
cmp ax, word [ecx + 0x2e]
je 0x4b1c0e
mov eax, dword [esp + 0x174]
add esi, 2
mov dword [esp + 0x14], esi
mov ecx, dword [eax + 0x7c]
cmp esi, ecx
jae 0x4b198b
mov ax, word [esi]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [esp + 0x174]
jne 0x4b198b
add esi, 2
mov dword [esp + 0x14], esi
inc ebp
cmp ebp, dword [esp + 0x20]
jl 0x4b18f7
jmp 0x4b1c0e
cmp dword [eax + 0x8c], 0
je 0x4b1c0e
cmp esi, dword [eax + 0x88]
jbe 0x4b1c0e
mov dword [eax + 0x64], 1
cmp dword [eax + 0x8c], 1
jg 0x4b3fe6
jmp 0x4b1c0e
cmp ebp, edx
jge 0x4b1c0e
mov eax, dword [esp + 0x174]
mov ecx, dword [eax + 0x7c]
nop
cmp esi, ecx
jae 0x4b199b
mov edx, dword [eax + 0x18]
add eax, 0x1c
test edx, edx
je 0x4b1a06
push 1
push eax
push ecx
mov ecx, esi
call fcn.004b5b90
add esp, 0xc
test eax, eax
jne 0x4b1c0e
jmp 0x4b1a38
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x4b1a38
mov ecx, dword [esp + 0x174]
mov ax, word [esi]
cmp ax, word [ecx + 0x2c]
jne 0x4b1a38
cmp edx, 1
je 0x4b1c0e
mov ax, word [esi + 2]
cmp ax, word [ecx + 0x2e]
je 0x4b1c0e
mov eax, dword [esp + 0x174]
add esi, 2
mov dword [esp + 0x14], esi
mov ecx, dword [eax + 0x7c]
cmp esi, ecx
jae 0x4b1a70
mov ax, word [esi]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [esp + 0x174]
jne 0x4b1a70
add esi, 2
mov dword [esp + 0x14], esi
inc ebp
cmp ebp, dword [esp + 0x20]
jl 0x4b19e0
jmp 0x4b1c0e
cmp edx, 0x7fffffff
jge 0x4b1ad8
cmp ebp, edx
jge 0x4b1c0e
mov eax, dword [esp + 0x174]
mov ecx, dword [eax + 0x7c]
nop word [eax + eax]
cmp esi, ecx
jae 0x4b1acf
add esi, 2
mov dword [esp + 0x14], esi
cmp esi, ecx
jae 0x4b1ac5
mov ax, word [esi]
and ax, word [esp + 0x64]
cmp ax, word [esp + 0x68]
jne 0x4b1ac5
add esi, 2
mov dword [esp + 0x14], esi
inc ebp
cmp ebp, edx
jl 0x4b1aa0
jmp 0x4b1c0e
mov eax, dword [esp + 0x174]
jmp 0x4b1ae6
mov eax, dword [esp + 0x174]
mov esi, dword [eax + 0x7c]
mov dword [esp + 0x14], esi
cmp dword [eax + 0x8c], 0
je 0x4b1b0b
cmp esi, dword [eax + 0x88]
jbe 0x4b1b0b
mov dword [eax + 0x64], 1
cmp dword [eax + 0x8c], 1
jg 0x4b3fe6
mov ebp, eax
jmp 0x4b1c15
sub edx, ebp
mov ebp, dword [esp + 0x174]
mov ecx, dword [ebp + 0x7c]
mov eax, ecx
sub eax, esi
sar eax, 1
cmp edx, eax
jbe 0x4b1b41
mov eax, ebp
mov esi, ecx
mov dword [esp + 0x14], esi
cmp dword [eax + 0x8c], 0
je 0x4b1b0b
cmp ecx, dword [eax + 0x88]
jmp 0x4b1af5
lea esi, [esi + edx*2]
mov dword [esp + 0x14], esi
jmp 0x4b1c15
cmp ebp, edx
jge 0x4b1c0e
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
nop
mov edx, esi
cmp esi, edi
jae 0x4b1c30
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b1b9c
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, 4
add ecx, 0x10000
jmp 0x4b1ba1
mov eax, 2
cmp ecx, 0xd
jne 0x4b1bbd
add esi, 2
mov dword [esp + 0x14], esi
cmp esi, edi
jae 0x4b1c0a
cmp word [esi], 0xa
cmovne esi, edx
add esi, 2
jmp 0x4b1bfb
cmp ecx, 0xa
je 0x4b1bf9
mov edx, dword [esp + 0x174]
cmp dword [edx + 0x68], 0
jne 0x4b2154
cmp ecx, 0xb
je 0x4b1bf9
cmp ecx, 0xc
je 0x4b1bf9
cmp ecx, 0x85
je 0x4b1bf9
cmp ecx, 0x2028
je 0x4b1bf9
cmp ecx, 0x2029
jne 0x4b2154
add esi, eax
inc ebp
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x20]
jl 0x4b1b60
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x174]
cmp dword [esp + 0x38], 0
mov edx, dword [esp + 0x10]
je 0x4b3164
mov edi, dword [esp + 0x174]
jmp 0x4ace50
mov eax, dword [esp + 0x174]
cmp dword [eax + 0x8c], 0
je 0x4b1c5c
cmp esi, dword [eax + 0x88]
jbe 0x4b1c5c
mov dword [eax + 0x64], 1
cmp dword [eax + 0x8c], 1
jg 0x4b3fe6
mov edi, dword [esp + 0x18]
mov ebp, eax
jmp 0x4b1c15
cmp ebp, edx
jge 0x4b1c0e
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
mov edx, 1
cmp esi, edi
jae 0x4b1d31
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b1caf
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x180e
ja 0x4b1cd5
je 0x4b1d03
cmp ecx, 0xa0
ja 0x4b1ccd
je 0x4b1d03
cmp ecx, 9
je 0x4b1d03
cmp ecx, 0x20
jmp 0x4b1cfd
cmp ecx, 0x1680
jmp 0x4b1cfd
cmp ecx, 0x205f
ja 0x4b1cf7
je 0x4b1d03
cmp ecx, 0x2000
jb 0x4b1cff
cmp ecx, 0x200a
jbe 0x4b1d03
cmp ecx, 0x202f
jmp 0x4b1cfd
cmp ecx, 0x3000
je 0x4b1d03
xor ecx, ecx
jmp 0x4b1d08
mov ecx, 1
xor eax, eax
cmp dword [esp + 0x18], 0x12
sete al
cmp ecx, eax
je 0x4b1c0a
inc ebp
lea esi, [esi + edx*2]
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x20]
jl 0x4b1c72
jmp 0x4b1c0a
mov eax, dword [esp + 0x174]
cmp dword [eax + 0x8c], 0
je 0x4b1c5c
cmp esi, dword [eax + 0x88]
jbe 0x4b1c5c
mov dword [eax + 0x64], edx
cmp dword [eax + 0x8c], edx
jg 0x4b3fe6
mov edi, dword [esp + 0x18]
mov ebp, eax
jmp 0x4b1c15
cmp ebp, edx
jge 0x4b1c0e
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
nop dword [eax]
cmp esi, edi
jae 0x4b1c30
movzx ecx, word [esi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b1dbd
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x85
ja 0x4b1df8
je 0x4b1e03
cmp ecx, 0xa
jb 0x4b1dd1
cmp ecx, 0xd
jbe 0x4b1e03
xor ecx, ecx
xor eax, eax
cmp dword [esp + 0x18], 0x14
sete al
cmp ecx, eax
je 0x4b1c0a
inc ebp
lea esi, [esi + edx*2]
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x20]
jl 0x4b1d80
jmp 0x4b1c0a
lea eax, [ecx - 0x2028]
cmp eax, 1
ja 0x4b1dd1
mov ecx, 1
jmp 0x4b1dd3
cmp ebp, edx
jge 0x4b1c0e
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
nop dword [eax]
cmp esi, edi
jae 0x4b1c30
movzx ecx, word [esi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b1e5d
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x4b1e79
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 4
jne 0x4b1c0a
inc ebp
lea esi, [esi + edx*2]
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x20]
jl 0x4b1e20
jmp 0x4b1c0a
cmp ebp, edx
jge 0x4b1c0e
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
nop
cmp esi, edi
jae 0x4b1c30
movzx ecx, word [esi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b1edd
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x4b1c0a
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 4
je 0x4b1c0a
inc ebp
lea esi, [esi + edx*2]
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x20]
jl 0x4b1ea0
jmp 0x4b1c0a
cmp ebp, edx
jge 0x4b1c0e
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
cmp esi, edi
jae 0x4b1c30
movzx ecx, word [esi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b1f5f
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x4b1f7b
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 1
jne 0x4b1c0a
inc ebp
lea esi, [esi + edx*2]
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x20]
jl 0x4b1f22
jmp 0x4b1c0a
cmp ebp, edx
jge 0x4b1c0e
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
cmp esi, edi
jae 0x4b1c30
movzx ecx, word [esi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b1fdd
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x4b1c0a
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 1
je 0x4b1c0a
inc ebp
lea esi, [esi + edx*2]
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x20]
jl 0x4b1fa0
jmp 0x4b1c0a
cmp ebp, edx
jge 0x4b1c0e
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
cmp esi, edi
jae 0x4b1c30
movzx ecx, word [esi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b205f
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x4b207b
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 0x10
jne 0x4b1c0a
inc ebp
lea esi, [esi + edx*2]
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x20]
jl 0x4b2022
jmp 0x4b1c0a
cmp ebp, edx
jge 0x4b1c0e
mov eax, dword [esp + 0x174]
mov edi, dword [eax + 0x7c]
cmp esi, edi
jae 0x4b2110
movzx ecx, word [esi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b20dd
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x4b1c0a
mov eax, dword [esp + 0x174]
mov eax, dword [eax + 0x3c]
test byte [ecx + eax], 0x10
je 0x4b1c0a
inc ebp
lea esi, [esi + edx*2]
mov dword [esp + 0x14], esi
cmp ebp, dword [esp + 0x20]
jl 0x4b20a0
jmp 0x4b1c0a
mov eax, dword [esp + 0x174]
cmp dword [eax + 0x8c], 0
je 0x4b1c5c
cmp esi, dword [eax + 0x88]
jbe 0x4b1c5c
mov dword [eax + 0x64], 1
cmp dword [eax + 0x8c], 1
jle 0x4b1c5c
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov edi, dword [esp + 0x18]
mov ebp, edx
jmp 0x4b1c15
cmp ecx, 0x74
mov ecx, esi
jne 0x4b21a0
mov eax, dword [esp + 0x17c]
add edx, 4
inc eax
push eax
push dword [esp + 0x17c]
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
mov edx, ebp
jmp 0x4b23ff
mov dword [edi + 0x9c], 2
mov edx, ebp
mov eax, dword [esp + 0x17c]
inc eax
push eax
push dword [esp + 0x17c]
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
mov edx, dword [esp + 0x10]
add edx, 4
jmp 0x4b23ff
mov edi, dword [esp + 0x174]
mov eax, dword [edi + 0x90]
cmp eax, ebx
cmovle eax, ebx
mov dword [esp + 0x170], eax
movzx eax, word [ebp + 6]
lea eax, [eax*2 + 4]
add eax, ebp
mov ecx, eax
cmp word [ecx], 0x71
jne 0x4b222d
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
mov ecx, eax
cmp word [ecx], 0x71
je 0x4b2215
jmp 0x4b222d
mov edi, dword [esp + 0x174]
cmp dword [esp + 0x1c], 0x86
lea edx, [eax + 4]
mov dword [esp + 0x10], edx
jne 0x4b2403
mov dword [edi + 0x9c], 2
mov ecx, esi
mov eax, dword [esp + 0x17c]
inc eax
push eax
push dword [esp + 0x17c]
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
cmp ecx, 0x75
je 0x4b25aa
cmp ecx, 0x74
jne 0x4b2315
mov eax, dword [esp + 0x17c]
add edx, 4
inc eax
mov ecx, esi
push eax
push dword [esp + 0x17c]
push edi
push ebx
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
movzx eax, word [ebp]
mov edx, ebp
cmp eax, 0x7b
je 0x4b237c
mov ecx, 0x82
cmp ax, cx
jb 0x4b23ff
mov dword [edi + 0x9c], 2
mov ecx, esi
mov eax, dword [esp + 0x17c]
inc eax
push eax
push dword [esp + 0x17c]
push edi
push ebx
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, 0x82
cmp word [ebp], ax
jb 0x4b232a
mov dword [edi + 0x9c], 2
mov eax, dword [esp + 0x17c]
mov edx, ebp
inc eax
mov ecx, esi
push eax
push dword [esp + 0x17c]
push edi
push ebx
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
cmp eax, 0xfffffc1c
jne 0x4b235e
cmp dword [edi + 0xb8], ebp
jmp 0x4b2360
test eax, eax
jne 0x4b2416
mov edx, dword [esp + 0x10]
add edx, 4
cmp word [ebp], 0x7b
mov dword [esp + 0x10], edx
jne 0x4b2403
mov eax, dword [esp + 0x17c]
mov ecx, esi
inc eax
push eax
push dword [esp + 0x17c]
push edi
push ebx
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4adf13
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x10]
movzx edx, word [eax + 4]
mov dword [esp + 0x48], edx
lea ebp, [edx + edx]
cmp ebp, dword [edi + 0x14]
jl 0x4b3ff6
mov edx, dword [esp + 0x1c]
nop
cmp edx, 0x82
jae 0x4b2421
cmp edx, 0x7b
je 0x4b2421
cmp dword [edi + 0x6c], 0
mov edx, dword [esp + 0x10]
jne 0x4b242f
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x71
je 0x4b242f
movzx eax, word [edx]
movzx eax, byte [eax + 0x4cc258]
lea edx, [edx + eax*2]
mov dword [esp + 0x10], edx
mov eax, dword [edi]
cmp eax, dword [edi + 4]
jb 0x4acdf0
inc eax
mov dword [edi], eax
mov eax, 0xfffffff8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov edx, dword [esp + 0x10]
mov dword [edi + 0x9c], 2
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov ebx, dword [esp + 0x174]
inc eax
mov edi, dword [edi + 0xb0]
push eax
movzx eax, word [edx]
push dword [esp + 0x17c]
push ebx
movzx eax, byte [eax + 0x4cc258]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
lea edx, [edx + eax*2]
call fcn.004acd50
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc20
jne 0x4b24ac
mov ebp, dword [esp + 0x10]
movzx ecx, word [ebp + 2]
lea eax, [ecx*2]
add eax, ebp
cmp dword [ebx + 0x80], eax
jae 0x4b4195
cmp word [ebp], 0x71
je 0x4b24b8
cmp word [eax], 0x71
jne 0x4b4195
jmp 0x4b24b8
test edx, edx
jne 0x4b415a
mov ebp, dword [esp + 0x10]
movzx eax, word [ebp + 2]
lea ebp, [ebp + eax*2]
mov dword [ebx + 0xb0], edi
cmp word [ebp], 0x71
mov dword [esp + 0x10], ebp
jne case.0x4ace89.151
mov edi, ebx
jmp 0x4b23ca
mov eax, dword [esp + 0x17c]
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
movzx eax, word [ebx + 2]
add ecx, eax
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
lea edx, [ebx + ecx*2]
mov ecx, esi
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b2528
cmp eax, 0xfffffc1d
je 0x4b2528
cmp eax, 0xfffffc20
jne 0x4b2416
lea eax, [ebx + 4]
mov dword [edi + 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 + 0x58]
lea ecx, [esp + 0xf0]
cmp eax, ecx
je 0x4b256a
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, 0xfffffffa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x16c]
mov dword [edi + 0x84], esi
mov dword [edi + 0x80], eax
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov dword [edi + 0x84], esi
mov eax, 0xfffffc1b
mov dword [edi + 0x90], ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x170]
mov dword [edi + 0x84], esi
mov dword [edi + 0x90], eax
mov eax, dword [esp + 0x16c]
mov dword [edi + 0x80], eax
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
cmp dword [edi + 0x8c], 0
je case.0x4ace89.151
cmp esi, dword [edi + 0x88]
jbe case.0x4ace89.151
mov dword [edi + 0x64], 1
cmp dword [edi + 0x8c], 1
jmp 0x4b3fe0
mov eax, dword [esp + 0x174]
cmp dword [eax + 0x8c], 0
je case.0x4ace89.151
cmp esi, dword [eax + 0x88]
jbe case.0x4ace89.151
mov dword [eax + 0x64], 1
cmp dword [eax + 0x8c], 1
jmp 0x4b3fe0
mov eax, dword [esp + 0x174]
cmp dword [eax + 0x8c], 0
je case.0x4ace89.151
cmp esi, dword [eax + 0x7c]
jb case.0x4ace89.151
jmp 0x4b2636
mov ebx, esi
cmp edi, eax
jge 0x4b26f0
nop
push edx
push dword [esp + 0x178]
mov edx, esi
push ebp
call fcn.004acba0
add esp, 0xc
test eax, eax
js 0x4b26ab
mov ecx, dword [esp + 0x2c]
lea esi, [esi + eax*2]
mov edx, dword [esp + 0x24]
inc edi
cmp edi, dword [esp + 0x28]
jl 0x4b2680
jmp 0x4b26dc
mov eax, dword [esp + 0x174]
cmp dword [eax + 0x8c], 0
je 0x4b26dc
cmp esi, dword [eax + 0x7c]
jb 0x4b26dc
cmp esi, dword [eax + 0x88]
jbe 0x4b26dc
mov dword [eax + 0x64], 1
cmp dword [eax + 0x8c], 1
jg 0x4b3fe6
cmp esi, ebx
jb case.0x4ace89.151
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
mov eax, ebp
neg eax
lea esi, [esi + eax*2]
cmp esi, ebx
jae 0x4b26f0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
cmp dword [edi + 0x8c], 0
je case.0x4ace89.151
cmp esi, dword [edi + 0x7c]
jb case.0x4ace89.151
jmp 0x4b2603
cmp dword [esp + 0x30], 0
je 0x4b2856
mov eax, dword [esp + 0x17c]
mov ecx, esi
inc eax
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
cmp edi, ebx
jge case.0x4ace89.151
mov eax, dword [esp + 0x174]
cmp esi, dword [eax + 0x7c]
jae 0x4b2629
movzx edx, word [esi]
add esi, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b27e8
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add esi, 2
cmp edx, 0xff
jbe 0x4b27f7
cmp dword [esp + 0x1c], 0x6a
jmp 0x4b2809
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
test byte [edx + ebp], al
je case.0x4ace89.151
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
inc edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b27a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ebp, esi
cmp edi, ebx
jge 0x4b28c4
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x28]
mov ebx, dword [eax + 0x7c]
nop
cmp esi, ebx
jae 0x4b299c
movzx edx, word [esi]
mov edi, 1
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b28ad
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov edi, 2
add edx, 0x10000
cmp edx, 0xff
jbe 0x4b2963
cmp dword [esp + 0x1c], 0x6a
jne 0x4b2983
mov edi, dword [esp + 0x174]
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, ebx
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
mov eax, esi
mov ecx, esi
sub esi, 2
cmp eax, ebp
je case.0x4ace89.151
mov ax, word [esi]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4b2929
lea esi, [ecx - 4]
mov eax, dword [esp + 0x17c]
mov edx, ebx
inc eax
mov ecx, esi
push eax
push dword [esp + 0x17c]
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b2902
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 + 0x40]
test byte [edx + ecx], al
je 0x4b28c4
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
lea esi, [esi + edi*2]
inc eax
mov dword [esp + 0x24], eax
cmp eax, ecx
jl 0x4b2870
jmp 0x4b28c4
mov edi, dword [esp + 0x174]
cmp dword [edi + 0x8c], 0
je 0x4b28cb
cmp esi, dword [edi + 0x88]
jbe 0x4b28cb
mov dword [edi + 0x64], 1
cmp dword [edi + 0x8c], 1
jg 0x4b3fe6
jmp 0x4b28cb
mov ebp, esi
cmp ebx, edi
jge 0x4b2a41
nop
mov edi, dword [esp + 0x174]
cmp esi, dword [edi + 0x7c]
jae 0x4b2ae1
movzx ecx, word [esi]
mov edi, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b2a25
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edi, 2
add ecx, 0x10000
mov edx, dword [esp + 0x40]
push 1
call fcn.004b5d10
add esp, 4
test eax, eax
je 0x4b2a41
inc ebx
lea esi, [esi + edi*2]
cmp ebx, dword [esp + 0x28]
jl 0x4b29e0
mov edi, dword [esp + 0x174]
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov ebx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, ebx
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
nop
mov eax, esi
mov ecx, esi
sub esi, 2
cmp eax, ebp
je case.0x4ace89.151
mov ax, word [esi]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4b2aa7
lea esi, [ecx - 4]
mov eax, dword [esp + 0x17c]
mov edx, ebx
inc eax
mov ecx, esi
push eax
push dword [esp + 0x17c]
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b2a80
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
cmp dword [edi + 0x8c], 0
je 0x4b2a48
cmp esi, dword [edi + 0x88]
jbe 0x4b2a48
mov dword [edi + 0x64], 1
cmp dword [edi + 0x8c], 1
jg 0x4b3fe6
jmp 0x4b2a48
cmp dword [edi + 0x8c], 0
je case.0x4ace89.151
cmp esi, ecx
jb case.0x4ace89.151
jmp 0x4b2603
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
cmp edi, ebp
jge case.0x4ace89.151
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x18]
mov ebp, dword [eax + 0x7c]
mov eax, ebp
lea ebx, [ecx + ecx]
sub eax, ebx
cmp esi, eax
ja 0x4b2bf7
mov edx, dword [esp + 0x20]
lea edi, [ecx + ecx]
mov ecx, esi
sub edi, 4
jb 0x4b2bb1
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4b2bba
add ecx, 4
add edx, 4
sub edi, 4
jae 0x4b2ba0
cmp edi, 0xfffffffc
je 0x4b2c73
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4b2bf7
cmp edi, 0xfffffffd
je 0x4b2c73
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4b2bf7
cmp edi, 0xfffffffe
je 0x4b2c73
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4b2bf7
cmp edi, 0xffffffff
je 0x4b2c73
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4b2c73
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jle 0x4b2cc8
lea ebx, [ecx + ecx]
mov eax, ebp
sub eax, ebx
cmp esi, eax
ja 0x4b2cc8
lea edi, [ecx + ecx]
mov ecx, esi
lea edx, [esp + 0x74]
sub edi, 4
jb 0x4b2c31
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4b2c36
add ecx, 4
add edx, 4
sub edi, 4
jae 0x4b2c20
cmp edi, 0xfffffffc
je 0x4b2c73
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4b2cc8
cmp edi, 0xfffffffd
je 0x4b2c73
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4b2cc8
cmp edi, 0xfffffffe
je 0x4b2c73
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4b2cc8
cmp edi, 0xffffffff
je 0x4b2c73
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4b2cc8
mov eax, dword [esp + 0x17c]
add esi, ebx
mov edi, dword [esp + 0x24]
inc eax
mov edx, dword [esp + 0x10]
inc edi
push eax
push dword [esp + 0x17c]
mov ecx, esi
mov dword [esp + 0x2c], edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
mov ebp, dword [esp + 0x30]
add esp, 0x14
test eax, eax
je 0x4b2b68
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x174]
cmp dword [eax + 0x8c], 0
je case.0x4ace89.151
cmp esi, ebp
jb case.0x4ace89.151
jmp 0x4b2636
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
cmp ebp, dword [esp + 0x1c]
jge case.0x4ace89.151
mov ecx, dword [esp + 0x174]
cmp esi, dword [ecx + 0x7c]
jae 0x4b2e27
movzx eax, word [esi]
cmp ebx, eax
je 0x4b2d4d
cmp edi, eax
jne case.0x4ace89.151
mov eax, dword [esp + 0x17c]
add esi, 2
mov edx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
inc ebp
push ecx
push dword [esp + 0x17c]
mov ecx, esi
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b2d24
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
cmp ebp, dword [esp + 0x1c]
jge case.0x4ace89.151
cmp esi, dword [edi + 0x7c]
jae 0x4b25f6
movzx eax, word [esi]
add esi, 2
cmp ebx, eax
jne case.0x4ace89.151
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
inc ebp
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b2dc2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ecx, dword [esp + 0x174]
cmp dword [ecx + 0x8c], 0
je case.0x4ace89.151
cmp esi, dword [ecx + 0x88]
jbe case.0x4ace89.151
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x8c], 1
jmp 0x4b3fe0
mov eax, dword [esp + 0x17c]
mov ecx, esi
inc eax
push eax
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
nop word [eax + eax]
cmp ebx, dword [esp + 0x1c]
jge case.0x4ace89.151
mov edx, dword [esp + 0x174]
cmp esi, dword [edx + 0x7c]
jae 0x4b2f2b
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b2eda
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
cmp edi, ecx
je case.0x4ace89.151
cmp ebp, ecx
je case.0x4ace89.151
mov eax, dword [esp + 0x17c]
mov ecx, esi
inc eax
inc ebx
push eax
push dword [esp + 0x17c]
push edx
push dword [esp + 0x17c]
mov edx, dword [esp + 0x20]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b2e90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
cmp dword [edx + 0x8c], 0
je case.0x4ace89.151
cmp esi, dword [edx + 0x88]
jbe case.0x4ace89.151
mov dword [edx + 0x64], 1
cmp dword [edx + 0x8c], 1
jmp 0x4b3fe0
cmp dword [ebp + 0x8c], 0
je case.0x4ace89.151
cmp esi, dword [ebp + 0x88]
jbe case.0x4ace89.151
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x8c], 1
jmp 0x4b3fe0
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
nop dword [eax + eax]
cmp ebx, dword [esp + 0x1c]
jge case.0x4ace89.151
cmp esi, dword [ebp + 0x7c]
jae 0x4b2f57
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b2fff
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
cmp edi, ecx
je case.0x4ace89.151
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
inc ebx
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b2fc0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov ebp, dword [esp + 0x174]
inc eax
push eax
push dword [esp + 0x17c]
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
nop dword [eax]
lea edi, [esi - 2]
cmp esi, ebx
je case.0x4ace89.151
mov ebp, 0xdc00
movzx eax, word [edi]
mov edx, edi
mov ecx, eax
and ecx, 0xfc00
movzx ebx, cx
cmp cx, bp
jne 0x4b30a9
movzx eax, word [edx - 2]
cmp bx, bp
movzx ecx, ax
lea esi, [edx - 2]
mov eax, ecx
cmovne esi, edi
lea edi, [edx - 2]
cmovne edi, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b30e3
movzx eax, word [esi + 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 + 0x4ca058]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
cmp dword [eax*4 + 0x4cc638], 2
jne 0x4b3119
add edi, 0xfffffffe
jmp 0x4b3090
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov ebp, dword [esp + 0x174]
inc eax
mov edx, dword [esp + 0x10]
push eax
push dword [esp + 0x17c]
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
mov ebx, dword [esp + 0x30]
add esp, 0x14
test eax, eax
je 0x4b3080
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, esi
inc eax
push eax
push dword [esp + 0x17c]
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
lea ecx, [esi - 2]
cmp esi, ebx
je case.0x4ace89.151
mov ax, word [ecx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
cmovne ecx, esi
sub ecx, 2
mov esi, ecx
cmp edi, 0x11
jne 0x4b31d5
cmp ecx, ebx
jbe 0x4b31d5
cmp word [ecx], 0xa
jne 0x4b31d5
cmp word [ecx - 2], 0xd
lea eax, [ecx - 2]
cmove esi, eax
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
push ebp
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b3195
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
test eax, eax
js 0x4b3ae7
cmp eax, 8
ja case.default.0x4aea9e
jmp dword [eax*4 + 0x4b4894]
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edi, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, edi
push ebx
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
mov ecx, esi
cmp ebp, dword [esp + 0x20]
jge case.0x4ace89.151
cmp esi, dword [ebx + 0x7c]
jae 0x4b3fb9
movzx eax, word [esi]
add esi, 2
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b328a
lea esi, [ecx + 4]
cmp dword [esp + 0x34], 0
jne case.0x4ace89.151
mov eax, dword [esp + 0x17c]
mov edx, edi
inc eax
mov ecx, esi
push eax
push dword [esp + 0x17c]
inc ebp
push ebx
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b3260
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edi, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, edi
push ebx
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
nop word [eax + eax]
cmp ebp, dword [esp + 0x20]
jge case.0x4ace89.151
cmp esi, dword [ebx + 0x7c]
jae 0x4b3fb9
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b3353
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add esi, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ca058]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4bd678]
mov al, byte [eax*8 + 0x4c8f79]
cmp al, 9
je 0x4b3386
cmp al, 5
je 0x4b3386
cmp al, 8
je 0x4b3386
xor eax, eax
jmp 0x4b338b
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.0x4ace89.151
mov eax, dword [esp + 0x17c]
mov edx, edi
inc eax
mov ecx, esi
push eax
push dword [esp + 0x17c]
inc ebp
push ebx
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b3310
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edi, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, edi
push ebx
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
nop dword [eax + eax]
cmp ebp, dword [esp + 0x20]
jge case.0x4ace89.151
cmp esi, dword [ebx + 0x7c]
jae 0x4b3fb9
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b3453
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add esi, 2
add ecx, 0x10000
mov edx, dword [esp + 0x3c]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x4ca058]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
cmp dword [eax*4 + 0x4cc638], edx
sete cl
cmp ecx, dword [esp + 0x34]
je case.0x4ace89.151
mov eax, dword [esp + 0x17c]
mov edx, edi
inc eax
mov ecx, esi
push eax
push dword [esp + 0x17c]
inc ebp
push ebx
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b3410
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edi, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, edi
push ebx
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
nop word [eax + eax]
cmp ebp, dword [esp + 0x20]
jge case.0x4ace89.151
cmp esi, dword [ebx + 0x7c]
jae 0x4b3fb9
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b3553
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add esi, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ca058]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
cmp eax, dword [esp + 0x3c]
sete cl
cmp ecx, dword [esp + 0x34]
je case.0x4ace89.151
mov eax, dword [esp + 0x17c]
mov edx, edi
inc eax
mov ecx, esi
push eax
push dword [esp + 0x17c]
inc ebp
push ebx
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b3510
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edi, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, edi
push ebx
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
cmp ebp, dword [esp + 0x20]
jge case.0x4ace89.151
cmp esi, dword [ebx + 0x7c]
jae 0x4b3fb9
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b3643
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add esi, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ca058]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f78]
cmp eax, dword [esp + 0x3c]
sete cl
cmp ecx, dword [esp + 0x34]
je case.0x4ace89.151
mov eax, dword [esp + 0x17c]
mov edx, edi
inc eax
mov ecx, esi
push eax
push dword [esp + 0x17c]
inc ebp
push ebx
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b3600
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edi, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, edi
push ebx
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
cmp ebp, dword [esp + 0x20]
jge case.0x4ace89.151
cmp esi, dword [ebx + 0x7c]
jae 0x4b3fb9
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b3733
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add esi, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ca058]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
mov eax, dword [eax*4 + 0x4cc638]
cmp eax, 1
je 0x4b376c
cmp eax, 3
je 0x4b376c
xor eax, eax
jmp 0x4b3771
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.0x4ace89.151
mov eax, dword [esp + 0x17c]
mov edx, edi
inc eax
mov ecx, esi
push eax
push dword [esp + 0x17c]
inc ebp
push ebx
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b36f0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edi, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, edi
push ebx
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
cmp ebp, dword [esp + 0x20]
jge case.0x4ace89.151
cmp esi, dword [ebx + 0x7c]
jae 0x4b3fb9
movzx edx, word [esi]
add esi, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b3834
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add esi, 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ca058]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
cmp dword [eax*4 + 0x4cc638], 6
je 0x4b387c
cmp edx, 9
je 0x4b387c
cmp edx, 0xa
je 0x4b387c
cmp edx, 0xc
je 0x4b387c
cmp edx, 0xd
je 0x4b387c
xor eax, eax
jmp 0x4b3881
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.0x4ace89.151
mov eax, dword [esp + 0x17c]
mov edx, edi
inc eax
mov ecx, esi
push eax
push dword [esp + 0x17c]
inc ebp
push ebx
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b37f1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edi, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, edi
push ebx
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
cmp ebp, dword [esp + 0x20]
jge case.0x4ace89.151
cmp esi, dword [ebx + 0x7c]
jae 0x4b3fb9
movzx edx, word [esi]
add esi, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b3944
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add esi, 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ca058]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
cmp dword [eax*4 + 0x4cc638], 6
je 0x4b3991
cmp edx, 9
je 0x4b3991
cmp edx, 0xa
je 0x4b3991
cmp edx, 0xb
je 0x4b3991
cmp edx, 0xc
je 0x4b3991
cmp edx, 0xd
je 0x4b3991
xor eax, eax
jmp 0x4b3996
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.0x4ace89.151
mov eax, dword [esp + 0x17c]
mov edx, edi
inc eax
mov ecx, esi
push eax
push dword [esp + 0x17c]
inc ebp
push ebx
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b3901
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edi, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
mov edx, edi
push ebx
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
jne 0x4b2416
cmp ebp, dword [esp + 0x20]
jge case.0x4ace89.151
cmp esi, dword [ebx + 0x7c]
jae 0x4b3fb9
movzx edx, word [esi]
add esi, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b3a59
movzx eax, word [esi]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add esi, 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4ca058]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
mov eax, dword [eax*4 + 0x4cc638]
cmp eax, 1
je 0x4b3a99
cmp eax, 3
je 0x4b3a99
cmp edx, 0x5f
je 0x4b3a99
xor eax, eax
jmp 0x4b3a9e
mov eax, 1
cmp eax, dword [esp + 0x34]
je case.0x4ace89.151
mov eax, dword [esp + 0x17c]
mov edx, edi
inc eax
mov ecx, esi
push eax
push dword [esp + 0x17c]
inc ebp
push ebx
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b3a16
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
push ebx
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
cmp edi, 0x16
jne 0x4b3c5a
test eax, eax
jne 0x4b2416
cmp ebp, dword [esp + 0x20]
jge case.0x4ace89.151
mov ebx, dword [ebx + 0x7c]
cmp esi, ebx
jae 0x4b2622
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b3b6a
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4ca058]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
cmp dword [eax*4 + 0x4cc638], 2
je case.0x4ace89.151
cmp esi, ebx
jae 0x4b3c12
mov edi, esi
movzx ecx, word [esi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b3bdb
movzx eax, word [esi + 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 + 0x4ca058]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4bd678]
movzx eax, byte [eax*8 + 0x4c8f79]
cmp dword [eax*4 + 0x4cc638], 2
jne 0x4b3c12
lea esi, [edi + edx*2]
mov edi, esi
cmp esi, ebx
jb 0x4b3ba6
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov ebx, dword [esp + 0x174]
inc eax
mov edx, dword [esp + 0x10]
inc ebp
push eax
push dword [esp + 0x17c]
push ebx
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b3b25
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
test eax, eax
jne 0x4b2416
cmp ebp, dword [esp + 0x20]
jge case.0x4ace89.151
mov ecx, dword [ebx + 0x7c]
cmp esi, ecx
jae 0x4b3fb9
cmp edi, 0xc
jne 0x4b3cc9
mov edx, dword [ebx + 0x18]
lea eax, [ebx + 0x1c]
test edx, edx
je 0x4b3c9e
push 1
push eax
push ecx
mov ecx, esi
call fcn.004b5b90
add esp, 0xc
test eax, eax
jne case.0x4ace89.151
jmp 0x4b3cc9
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x4b3cc9
mov ax, word [esi]
cmp ax, word [ebx + 0x2c]
jne 0x4b3cc9
cmp edx, 1
je case.0x4ace89.151
mov ax, word [esi + 2]
cmp ax, word [ebx + 0x2e]
je case.0x4ace89.151
movzx ecx, word [esi]
lea edx, [esi + 2]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4b3cf9
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edx, 2
lea eax, [edi - 6]
cmp eax, 0xf
ja case.default.0x4aea9e
jmp dword [eax*4 + 0x4b48b8]
mov esi, edx
jmp 0x4b3f68
cmp ecx, 0xd
ja 0x4b3d41
je 0x4b3d24
cmp ecx, 0xa
je case.0x4b3d05.12
lea eax, [ecx - 0xb]
jmp 0x4b3d4f
mov esi, edx
cmp edx, dword [ebx + 0x7c]
jae 0x4b3f68
cmp word [edx], 0xa
jne 0x4b3f68
lea esi, [edx + 2]
jmp 0x4b3f68
cmp ecx, 0x85
je 0x4b3d58
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x4ace89.151
cmp dword [ebx + 0x68], 0
mov esi, edx
jne case.0x4ace89.151
jmp 0x4b3f68
cmp ecx, 0x180e
ja 0x4b3d9b
je case.0x4ace89.151
cmp ecx, 0xa0
ja 0x4b3d93
je case.0x4ace89.151
cmp ecx, 9
je case.0x4ace89.151
cmp ecx, 0x20
jmp 0x4b3dcf
cmp ecx, 0x1680
jmp 0x4b3dcf
cmp ecx, 0x205f
ja 0x4b3dc9
je case.0x4ace89.151
cmp ecx, 0x2000
jb case.0x4b3d05.12
cmp ecx, 0x200a
jbe case.0x4ace89.151
cmp ecx, 0x202f
jmp 0x4b3dcf
cmp ecx, 0x3000
je case.0x4ace89.151
mov esi, edx
jmp 0x4b3f68
cmp ecx, 0x180e
ja 0x4b3e0e
je case.0x4b3d05.12
cmp ecx, 0xa0
ja 0x4b3e06
je case.0x4b3d05.12
cmp ecx, 9
je case.0x4b3d05.12
cmp ecx, 0x20
jmp 0x4b3e42
cmp ecx, 0x1680
jmp 0x4b3e42
cmp ecx, 0x205f
ja 0x4b3e3c
je case.0x4b3d05.12
cmp ecx, 0x2000
jb case.0x4ace89.151
cmp ecx, 0x200a
jbe case.0x4b3d05.12
cmp ecx, 0x202f
jmp 0x4b3e42
cmp ecx, 0x3000
jne case.0x4ace89.151
mov esi, edx
jmp 0x4b3f68
cmp ecx, 0x85
ja 0x4b3e6b
je case.0x4ace89.151
cmp ecx, 0xa
jb case.0x4b3d05.12
cmp ecx, 0xd
jmp 0x4b3e7d
cmp ecx, 0x2028
jb case.0x4b3d05.12
cmp ecx, 0x2029
jbe case.0x4ace89.151
mov esi, edx
jmp 0x4b3f68
cmp ecx, 0x85
ja 0x4b3ea0
je case.0x4b3d05.12
lea eax, [ecx - 0xa]
cmp eax, 3
jmp 0x4b3ea9
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x4ace89.151
mov esi, edx
jmp 0x4b3f68
cmp ecx, 0x100
jae case.0x4b3d05.12
mov eax, dword [ebx + 0x3c]
test byte [ecx + eax], 4
jne case.0x4ace89.151
mov esi, edx
jmp 0x4b3f68
cmp ecx, 0x100
jae case.0x4ace89.151
mov eax, dword [ebx + 0x3c]
test byte [ecx + eax], 4
je case.0x4ace89.151
mov esi, edx
jmp 0x4b3f68
cmp ecx, 0x100
jae case.0x4b3d05.12
mov eax, dword [ebx + 0x3c]
test byte [ecx + eax], 1
jne case.0x4ace89.151
mov esi, edx
jmp 0x4b3f68
cmp ecx, 0x100
jae case.0x4ace89.151
mov eax, dword [ebx + 0x3c]
test byte [ecx + eax], 1
je case.0x4ace89.151
mov esi, edx
jmp 0x4b3f68
cmp ecx, 0x100
jae case.0x4b3d05.12
mov eax, dword [ebx + 0x3c]
test byte [ecx + eax], 0x10
jne case.0x4ace89.151
mov esi, edx
jmp 0x4b3f68
cmp ecx, 0x100
jae case.0x4ace89.151
mov eax, dword [ebx + 0x3c]
mov esi, edx
test byte [ecx + eax], 0x10
je case.0x4ace89.151
mov eax, dword [esp + 0x17c]
mov ecx, esi
mov edx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
inc ebp
push ebx
push dword [esp + 0x17c]
push dword [esp + 0x17c]
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b3c62
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
cmp dword [ebx + 0x8c], 0
je case.0x4ace89.151
cmp esi, dword [ebx + 0x88]
jbe case.0x4ace89.151
mov dword [ebx + 0x64], 1
cmp dword [ebx + 0x8c], 1
jle case.0x4ace89.151
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + ebp*4]
mov dword [esp + 0x4c], eax
mov eax, dword [ecx + ebp*4 + 4]
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x10]
mov edi, dword [edi + 0x94]
sub eax, edx
mov edx, dword [esp + 0x174]
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
mov dword [esp + 0x44], eax
mov eax, esi
sub eax, dword [edx + 0x78]
mov ebx, dword [edx + 0xb0]
sar eax, 1
mov dword [ecx], eax
cmp dword [esp + 0x1c], 0x82
jb 0x4b4046
mov dword [edx + 0x9c], 2
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x17c]
inc eax
push eax
movzx eax, word [ecx]
push dword [esp + 0x17c]
push edx
movzx eax, byte [eax + 0x4cc258]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
lea edx, [ecx + eax*2]
mov ecx, esi
call fcn.004acd50
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc1c
je 0x4b4119
cmp edx, 0xfffffc20
jne 0x4b40d3
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 2]
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x174]
cmp dword [ecx + 0x80], eax
jae 0x4b414d
mov ecx, dword [esp + 0x10]
cmp word [ecx], 0x71
mov ecx, dword [esp + 0x174]
je 0x4b40cf
cmp word [eax], 0x71
jne 0x4b414d
xor edx, edx
jmp 0x4b40e2
test edx, edx
jne 0x4b414d
mov ecx, dword [esp + 0x174]
mov eax, dword [esp + 0x10]
mov dword [ecx + 0x94], edi
mov ecx, dword [esp + 0x10]
movzx eax, word [eax + 2]
lea ecx, [ecx + eax*2]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x174]
mov eax, dword [esp + 0x10]
mov dword [ecx + 0xb0], ebx
cmp word [eax], 0x71
jne 0x4b4120
mov edx, ecx
jmp 0x4b4032
mov ecx, dword [esp + 0x174]
mov eax, dword [ecx + 0xc]
mov ebx, dword [esp + 0x174]
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x44]
mov dword [eax + ebp*4], ecx
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x40]
mov dword [eax + ebp*4 + 4], ecx
mov ecx, dword [ebx + 0x10]
sub ecx, dword [esp + 0x48]
mov eax, dword [ebx + 0xc]
mov dword [eax + ecx*4], esi
mov eax, edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
cmp edx, 0xfffffc1c
jne 0x4b4195
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp eax, 0x7b
je 0x4b418a
cmp eax, 0x71
jne 0x4b4181
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x71
lea ecx, [ecx + eax*2]
je 0x4b4173
movzx eax, word [ecx + 2]
neg eax
lea ecx, [ecx + eax*2]
xor eax, eax
cmp dword [ebx + 0xb8], ecx
cmove edx, eax
mov eax, edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov edx, dword [esp + 0x10]
lea ebx, [edx + 4]
mov dword [edi + 0xb4], ebx
mov dword [edi + 0xb0], 0
mov eax, dword [esp + 0x17c]
inc eax
push eax
movzx eax, word [edx]
push dword [esp + 0x17c]
push edi
movzx ecx, byte [eax + 0x4cc258]
movzx eax, word [edx + 2]
push dword [esp + 0x17c]
add ecx, eax
push dword [esp + 0x17c]
lea edx, [edx + ecx*2]
mov ecx, esi
call fcn.004acd50
mov edi, eax
add esp, 0x14
cmp edi, 1
je 0x4b4204
cmp edi, 0xfffffc19
jne 0x4b4227
mov ebp, dword [esp + 0x174]
cmp dword [ebp + 0xb0], 0
jne 0x4b422e
mov dword [ebp + 0xb0], ebx
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ebp, dword [esp + 0x174]
cmp edi, 0xfffffc1f
jne 0x4b256a
mov edx, dword [ebp + 0x80]
mov ecx, ebx
call fcn.004b5a80
test eax, eax
jne 0x4b256a
mov dword [ebp + 0x80], esi
lea eax, [edi - 1]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
movzx eax, byte [edx + 0x4cc258]
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
lea edx, [ecx + eax*2]
mov ecx, esi
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b42be
cmp eax, 0xfffffc1d
je 0x4b42be
cmp eax, 0xfffffc1e
je 0x4b42be
cmp eax, 0xfffffc1f
je 0x4b42be
cmp eax, 0xfffffc20
jne 0x4b2416
mov eax, 0xfffffc1a
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
movzx eax, byte [edx + 0x4cc258]
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
lea edx, [ecx + eax*2]
mov ecx, esi
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b43a7
cmp eax, 0xfffffc20
je 0x4b43a7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x174]
lea edi, [edx + 4]
mov dword [ebx + 0xb4], edi
mov dword [ebx + 0xb0], 0
mov eax, dword [esp + 0x17c]
inc eax
push eax
movzx eax, word [edx]
push dword [esp + 0x17c]
push ebx
movzx ecx, byte [eax + 0x4cc258]
movzx eax, word [edx + 2]
push dword [esp + 0x17c]
add ecx, eax
push dword [esp + 0x17c]
lea edx, [edx + ecx*2]
mov ecx, esi
call fcn.004acd50
add esp, 0x14
cmp eax, 1
je 0x4b4389
cmp eax, 0xfffffc19
jne 0x4b4398
cmp dword [ebx + 0xb0], 0
jne 0x4b4398
mov dword [ebx + 0xb0], edi
test eax, eax
je 0x4b43a7
cmp eax, 0xfffffc20
jne 0x4b2416
mov eax, 0xfffffc1d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
movzx eax, byte [edx + 0x4cc258]
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
lea edx, [ecx + eax*2]
mov ecx, esi
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b4404
cmp eax, 0xfffffc1d
je 0x4b4404
cmp eax, 0xfffffc20
jne 0x4b2416
mov dword [edi + 0x80], esi
mov eax, 0xfffffc1e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x10]
inc eax
push eax
push dword [esp + 0x17c]
movzx eax, byte [edx + 0x4cc258]
push edi
push dword [esp + 0x17c]
push dword [esp + 0x17c]
lea edx, [ecx + eax*2]
mov ecx, esi
call fcn.004acd50
add esp, 0x14
test eax, eax
je 0x4b44e3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x174]
lea edi, [edx + 4]
mov dword [ebx + 0xb4], edi
mov dword [ebx + 0xb0], 0
mov eax, dword [esp + 0x17c]
inc eax
push eax
movzx eax, word [edx]
push dword [esp + 0x17c]
push ebx
movzx ecx, byte [eax + 0x4cc258]
movzx eax, word [edx + 2]
push dword [esp + 0x17c]
add ecx, eax
push dword [esp + 0x17c]
lea edx, [edx + ecx*2]
mov ecx, esi
call fcn.004acd50
add esp, 0x14
cmp eax, 1
je 0x4b44ca
cmp eax, 0xfffffc19
jne 0x4b44d9
cmp dword [ebx + 0xb0], 0
jne 0x4b44d9
mov dword [ebx + 0xb0], edi
test eax, eax
jne 0x4b2416
mov edi, ebx
mov eax, dword [esp + 0x10]
mov dword [edi + 0x80], eax
mov eax, 0xfffffc20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret
mov ebx, dword [esp + 0x16c]
cmp esi, ebx
jne 0x4b453d
cmp edx, 0x99
je 0x4b453d
cmp dword [edi + 0xa8], 0
jne 0x4b453d
cmp dword [edi + 0x5c], 0
jne case.0x4ace89.151
cmp dword [edi + 0x60], 0
je 0x4b453d
mov ecx, dword [edi + 0x98]
mov eax, dword [edi + 0x78]
lea eax, [eax + ecx*2]
cmp ebx, eax
je case.0x4ace89.151
mov eax, dword [esp + 0x170]
test bp, bp
mov dword [edi + 0x84], esi
mov ecx, 1
mov dword [edi + 0x90], eax
mov eax, 0xfffffc19
mov dword [edi + 0x80], ebx
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