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

Disassembly:
sub esp, 0x128
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x14c]
mov ecx, dword [edi]
mov eax, dword [edi + 0x44]
mov dword [esp + 0x30], eax
cmp ecx, dword [edi + 4]
jae 0x43dc7d
mov ebx, dword [esp + 0x154]
mov ebp, dword [esp + 0x140]
mov esi, dword [esp + 0x13c]
mov edx, dword [esp + 0x15c]
inc dword [edi]
cmp edx, dword [edi + 8]
jae 0x43dc8f
test byte [esp + 0x158], 2
mov eax, dword [esp + 0x150]
mov dword [esp + 0x38], eax
je 0x43970b
lea ecx, [esp + 0x58]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x154], ecx
mov cl, byte [ebp]
movzx eax, cl
xor ebx, ebx
mov edx, eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x24], edx
cmp edx, 0x72
ja case.0x439731.15
movzx edx, byte [edx + 0x43f5c9]
jmp dword [edx*4 + 0x43f4a9]
movzx ebx, byte [ebp + 1]
movzx eax, byte [ebp + 2]
shl ebx, 8
or ebx, eax
cmp byte [ebp + 3], 0x53
jne 0x439806
mov ecx, dword [0x4a7cc8]
test ecx, ecx
je 0x439803
movzx edx, byte [ebp + 4]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x68], eax
mov eax, dword [edi + 0x64]
mov dword [esp + 0x64], edx
mov edx, dword [edi + 0x68]
sub edx, eax
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x144]
sub edx, eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x74], edx
mov edx, esi
sub edx, eax
movzx eax, byte [ebp + 5]
shl eax, 8
mov dword [esp + 0x78], edx
movzx edx, byte [ebp + 6]
or eax, edx
movzx edx, byte [ebp + 8]
mov dword [esp + 0x88], eax
movzx eax, byte [ebp + 7]
shl eax, 8
or eax, edx
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x148]
cdq
sub eax, edx
mov edx, dword [edi + 0x94]
sar eax, 1
mov dword [esp + 0x7c], eax
mov eax, dword [edi + 0x80]
mov dword [esp + 0x80], eax
lea eax, [esp + 0x60]
push eax
mov dword [esp + 0x64], 1
mov dword [esp + 0x88], edx
call ecx
add esp, 4
test eax, eax
jg case.0x43f345.14
jl 0x43f49d
add ebp, 6
movzx ecx, byte [ebp + 3]
lea eax, [ebp + 3]
cmp ecx, 0x66
je 0x4399f7
cmp ecx, 0x67
je 0x4399f7
cmp ecx, 0x64
je 0x439891
cmp ecx, 0x65
je 0x439891
cmp ecx, 0x68
jne 0x439842
movzx ecx, byte [ebp + 1]
movzx edx, byte [ebp + 2]
shl ecx, 8
or ecx, edx
add ebp, ecx
jmp 0x4399e5
mov ecx, dword [esp + 0x15c]
mov edx, dword [esp + 0x150]
inc ecx
push ecx
mov ecx, dword [esp + 0x14c]
push 1
push 0
push edx
mov edx, dword [esp + 0x154]
push edi
push ecx
push edx
push eax
push esi
call fcn.00439699
add esp, 0x24
cmp eax, 1
je 0x43d9e3
test eax, eax
je 0x43988a
cmp eax, 0xfffffc1c
jne 0x43f49d
add ebp, ebx
jmp 0x4399e5
movzx eax, byte [ebp + 4]
movzx edx, byte [ebp + 5]
shl eax, 8
or eax, edx
add eax, eax
cmp eax, dword [esp + 0x148]
jge 0x4398b6
mov edx, dword [edi + 0xc]
cmp dword [edx + eax*4], 0
jge 0x439b37
mov dword [esp + 0x20], 0
cmp ecx, 0x65
jne 0x4399cb
mov ebx, dword [edi + 0x28]
xor ecx, ecx
sar eax, 1
cmp dword [edi + 0x20], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
jle 0x4398fa
movzx eax, byte [ebx]
movzx edx, byte [ebx + 1]
shl eax, 8
or eax, edx
cmp eax, dword [esp + 0x18]
je 0x4398f6
add ebx, dword [edi + 0x24]
inc ecx
cmp ecx, dword [edi + 0x20]
jl 0x4398db
mov dword [esp + 0x14], ecx
cmp ecx, dword [edi + 0x20]
jge 0x4399cb
mov dword [esp + 0x28], ebx
cmp ebx, dword [edi + 0x28]
jbe 0x439960
mov eax, dword [esp + 0x28]
sub eax, dword [edi + 0x24]
mov dword [esp + 0x28], eax
add eax, 2
push eax
lea eax, [ebx + 2]
push eax
call fcn.004151d0
add esp, 8
test eax, eax
jne 0x439960
mov ecx, dword [esp + 0x28]
movzx eax, byte [ecx]
movzx edx, byte [ecx + 1]
shl eax, 8
or eax, edx
add eax, eax
cmp eax, dword [esp + 0x148]
jge 0x439953
mov edx, dword [edi + 0xc]
cmp dword [edx + eax*4], 0
jge 0x439b37
mov dword [esp + 0x20], 0
cmp ecx, dword [edi + 0x28]
ja 0x43990c
mov eax, dword [esp + 0x14]
inc eax
cmp eax, dword [edi + 0x20]
mov dword [esp + 0x14], eax
jge 0x4399cb
lea eax, [ebx + 2]
mov dword [esp + 0x18], eax
lea esp, [esp]
add ebx, dword [edi + 0x24]
mov edx, dword [esp + 0x18]
lea ecx, [ebx + 2]
push ecx
push edx
call fcn.004151d0
add esp, 8
test eax, eax
jne 0x4399cb
movzx eax, byte [ebx]
movzx ecx, byte [ebx + 1]
shl eax, 8
or eax, ecx
add eax, eax
cmp eax, dword [esp + 0x148]
jge 0x4399b5
mov edx, dword [edi + 0xc]
cmp dword [edx + eax*4], 0
jge 0x439b37
mov eax, dword [esp + 0x14]
inc eax
cmp eax, dword [edi + 0x20]
mov dword [esp + 0x20], 0
mov dword [esp + 0x14], eax
jl 0x439979
movzx eax, byte [ebp + 1]
movzx ecx, byte [ebp + 2]
shl eax, 8
or eax, ecx
add ebp, eax
cmp dword [esp + 0x20], 0
jne 0x43da10
cmp byte [ebp], 0x54
je 0x43da10
add ebp, 3
jmp 0x43970b
mov edx, dword [edi + 0x90]
test edx, edx
jne 0x439a12
movzx edx, byte [ebp + 1]
movzx eax, byte [ebp + 2]
shl edx, 8
or edx, eax
add ebp, edx
jmp 0x4399e5
movzx eax, byte [ebp + 4]
movzx ebx, byte [ebp + 5]
shl eax, 8
or eax, ebx
cmp eax, 0xffff
je 0x439b37
cmp eax, dword [edx + 4]
je 0x439b37
mov dword [esp + 0x20], 0
cmp ecx, 0x67
jne 0x4399cb
mov ebx, dword [edi + 0x28]
xor ecx, ecx
cmp dword [edi + 0x20], ecx
mov dword [esp + 0x14], ecx
jle 0x439a6f
movzx ecx, byte [ebx]
movzx edx, byte [ebx + 1]
shl ecx, 8
or ecx, edx
cmp ecx, eax
je 0x439a6f
mov ecx, dword [esp + 0x14]
add ebx, dword [edi + 0x24]
inc ecx
cmp ecx, dword [edi + 0x20]
mov dword [esp + 0x14], ecx
jl 0x439a4e
mov eax, dword [esp + 0x14]
cmp eax, dword [edi + 0x20]
jge 0x4399cb
mov dword [esp + 0x28], ebx
cmp ebx, dword [edi + 0x28]
jbe 0x439ad0
lea esp, [esp]
mov eax, dword [esp + 0x28]
sub eax, dword [edi + 0x24]
mov dword [esp + 0x28], eax
add eax, 2
push eax
lea eax, [ebx + 2]
push eax
call fcn.004151d0
add esp, 8
test eax, eax
jne 0x439ad0
mov eax, dword [esp + 0x28]
movzx edx, byte [eax]
movzx ecx, byte [eax + 1]
shl edx, 8
or ecx, edx
mov edx, dword [edi + 0x90]
cmp ecx, dword [edx + 4]
je 0x439b37
mov dword [esp + 0x20], 0
cmp eax, dword [edi + 0x28]
ja 0x439a89
mov eax, dword [esp + 0x14]
inc eax
cmp eax, dword [edi + 0x20]
mov dword [esp + 0x14], eax
jge 0x4399cb
lea eax, [ebx + 2]
mov dword [esp + 0x18], eax
add ebx, dword [edi + 0x24]
mov edx, dword [esp + 0x18]
lea ecx, [ebx + 2]
push ecx
push edx
call fcn.004151d0
add esp, 8
test eax, eax
jne 0x4399cb
movzx ecx, byte [ebx]
movzx eax, byte [ebx + 1]
mov edx, dword [edi + 0x90]
shl ecx, 8
or eax, ecx
cmp eax, dword [edx + 4]
je 0x439b37
mov eax, dword [esp + 0x14]
inc eax
cmp eax, dword [edi + 0x20]
mov dword [esp + 0x20], 0
mov dword [esp + 0x14], eax
jl 0x439ae9
jmp 0x4399cb
mov dword [esp + 0x20], 1
mov eax, 3
jmp 0x4399d8
movzx eax, byte [ebp + 1]
movzx edx, byte [ebp + 2]
shl eax, 8
or eax, edx
lea ecx, [eax + eax]
cmp ecx, dword [edi + 0x14]
mov dword [edi + 0x80], eax
jl 0x439b73
mov dword [edi + 0x38], 1
add ebp, 3
jmp 0x43970b
mov ebx, dword [edi + 0x10]
mov edx, dword [edi + 0xc]
sub ebx, eax
mov eax, dword [edx + ebx*4]
mov dword [edx + ecx*4], eax
mov eax, dword [edi + 0xc]
mov edx, esi
sub edx, dword [edi + 0x64]
cmp dword [esp + 0x148], ecx
mov dword [eax + ecx*4 + 4], edx
jg 0x439ba0
add ecx, 2
mov dword [esp + 0x148], ecx
add ebp, 3
jmp 0x43970b
mov ebp, dword [edi + 0x90]
cmp ebp, ebx
je 0x43dfaf
cmp dword [ebp + 4], ebx
jne 0x43dfaf
mov ecx, dword [ebp]
mov dword [edi + 0x90], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov ecx, dword [edi + 0xc]
add edx, edx
add edx, edx
push edx
push eax
push ecx
call fcn.00416320
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x44]
mov ebp, dword [ebp + 8]
add esp, 0xc
mov dword [esp + 0x148], edx
mov dword [esp + 0x144], eax
mov dword [esp + 0x150], ecx
jmp 0x43970b
movzx edx, byte [ebp + 1]
mov dword [esp + 0x150], edx
add ebp, 2
jmp 0x43970b
mov ebx, dword [esp + 0x15c]
inc ebx
lea esp, [esp]
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x148]
mov edx, dword [esp + 0x144]
push ebx
push 0
push 0
push eax
push edi
push ecx
push edx
lea eax, [ebp + 3]
push eax
push esi
call fcn.00439699
add esp, 0x24
cmp eax, 1
je 0x439c7d
test eax, eax
je 0x439c68
cmp eax, 0xfffffc1c
jne 0x43f49d
movzx ecx, byte [ebp + 1]
movzx edx, byte [ebp + 2]
shl ecx, 8
or ecx, edx
add ebp, ecx
cmp byte [ebp], 0x54
je 0x439c29
cmp byte [ebp], 0x55
je case.0x43f345.14
test byte [esp + 0x158], 1
jne 0x43dfe9
lea esp, [esp]
movzx eax, byte [ebp + 1]
movzx ecx, byte [ebp + 2]
shl eax, 8
or eax, ecx
add ebp, eax
cmp byte [ebp], 0x54
je 0x439c99
mov edx, dword [edi + 0x7c]
add ebp, 3
mov dword [esp + 0x148], edx
jmp 0x43970b
mov ebx, dword [esp + 0x15c]
inc ebx
nop
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x148]
mov edx, dword [esp + 0x144]
push ebx
push 0
push 0
push eax
push edi
push ecx
push edx
lea eax, [ebp + 3]
push eax
push esi
call fcn.00439699
add esp, 0x24
cmp eax, 1
je case.0x43f345.14
test eax, eax
je 0x439d0c
cmp eax, 0xfffffc1c
jne 0x43f49d
movzx ecx, byte [ebp + 1]
movzx edx, byte [ebp + 2]
shl ecx, 8
or ecx, edx
add ebp, ecx
cmp byte [ebp], 0x54
je 0x439cc9
test byte [esp + 0x158], 1
jne 0x43dfe9
add ebp, 3
jmp 0x43970b
movzx eax, byte [ebp + 1]
movzx ecx, byte [ebp + 2]
shl eax, 8
cmp dword [esp + 0x30], ebx
je 0x439d7b
or eax, ecx
jle 0x439d88
mov ecx, dword [edi + 0x64]
dec esi
dec eax
cmp esi, ecx
jb case.0x43f345.14
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
jne 0x439d75
lea ebx, [ebx]
mov dl, byte [esi - 1]
dec esi
and dl, 0xc0
cmp dl, 0x80
je 0x439d69
cmp eax, ebx
jg 0x439d4f
jmp 0x439d88
or eax, ecx
sub esi, eax
cmp esi, dword [edi + 0x64]
jb case.0x43f345.14
cmp esi, dword [edi + 0x74]
jae 0x439d90
mov dword [edi + 0x74], esi
add ebp, 3
jmp 0x43970b
mov ecx, dword [0x4a7cc8]
cmp ecx, ebx
je 0x439e67
movzx edx, byte [ebp + 1]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x98], eax
mov eax, dword [edi + 0x64]
mov dword [esp + 0x94], edx
mov edx, dword [edi + 0x68]
sub edx, eax
mov dword [esp + 0xa0], edx
mov edx, dword [esp + 0x144]
sub edx, eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa4], edx
mov edx, esi
sub edx, eax
movzx eax, byte [ebp + 2]
shl eax, 8
mov dword [esp + 0xa8], edx
movzx edx, byte [ebp + 3]
or eax, edx
movzx edx, byte [ebp + 5]
mov dword [esp + 0xb8], eax
movzx eax, byte [ebp + 4]
shl eax, 8
or eax, edx
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x148]
cdq
sub eax, edx
mov edx, dword [edi + 0x94]
sar eax, 1
mov dword [esp + 0xac], eax
mov eax, dword [edi + 0x80]
mov dword [esp + 0xb0], eax
lea eax, [esp + 0x90]
push eax
mov dword [esp + 0x94], 1
mov dword [esp + 0xb8], edx
call ecx
add esp, 4
test eax, eax
jg case.0x43f345.14
jl 0x43f49d
add ebp, 6
jmp 0x43970b
mov ebx, dword [esp + 0x154]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], esi
jmp 0x439e89
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x148]
inc eax
push eax
mov eax, dword [esp + 0x148]
push 0
push ebx
push ecx
push edi
push edx
push eax
lea ecx, [ebp + 3]
push ecx
push esi
call fcn.00439699
add esp, 0x24
cmp eax, 1
je 0x439ee4
test eax, eax
je 0x439ecf
cmp eax, 0xfffffc1c
jne 0x43f49d
movzx edx, byte [ebp + 1]
movzx eax, byte [ebp + 2]
shl edx, 8
or edx, eax
add ebp, edx
cmp byte [ebp], 0x54
je 0x439e89
mov al, byte [ebp]
cmp al, 0x5d
je 0x439ef9
cmp al, 0x54
jne case.0x43f345.14
lea ebx, [ebx]
movzx ecx, byte [ebp + 1]
movzx edx, byte [ebp + 2]
shl ecx, 8
or ecx, edx
add ebp, ecx
cmp byte [ebp], 0x54
je 0x439ef9
cmp byte [ebp], 0x55
mov eax, dword [edi + 0x7c]
mov esi, dword [edi + 0x70]
mov dword [esp + 0x148], eax
je 0x439f2b
cmp esi, dword [esp + 0x28]
jne 0x43db0e
add ebp, 3
jmp 0x43970b
movzx eax, byte [ebp + 1]
movzx ecx, byte [ebp + 2]
shl eax, 8
or eax, ecx
add ebp, eax
cmp byte [ebp], 0x54
je case.0x439731.84
jmp 0x43970b
mov edx, dword [esp + 0x15c]
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x150]
inc edx
push edx
mov edx, dword [esp + 0x14c]
push 0
push eax
mov eax, dword [esp + 0x150]
push ecx
push edi
push edx
push eax
inc ebp
push ebp
push esi
call fcn.00439699
add esp, 0x24
test eax, eax
jne 0x43f49d
lea esp, [esp]
movzx ecx, byte [ebp + 1]
movzx edx, byte [ebp + 2]
shl ecx, 8
or ecx, edx
add ebp, ecx
cmp byte [ebp], 0x54
je 0x439f99
add ebp, 3
jmp 0x43970b
inc ebp
mov eax, ebp
movzx ecx, byte [eax + 1]
movzx edx, byte [eax + 2]
shl ecx, 8
or ecx, edx
add eax, ecx
cmp byte [eax], 0x54
je 0x439fb9
mov ecx, dword [esp + 0x15c]
mov edx, dword [esp + 0x154]
inc ecx
push ecx
mov ecx, dword [esp + 0x154]
push 0
push edx
mov edx, dword [esp + 0x154]
push ecx
mov ecx, dword [esp + 0x154]
push edi
push edx
push ecx
add eax, 3
push eax
push esi
call fcn.00439699
add esp, 0x24
test eax, eax
jne 0x43f49d
jmp 0x43970b
inc ebp
jmp 0x43a019
movzx edx, byte [ebp + 1]
movzx eax, byte [ebp + 2]
shl edx, 8
or edx, eax
add ebp, edx
cmp byte [ebp], 0x54
je 0x43a019
add ebp, 3
jmp 0x43970b
movzx ecx, byte [ebp + 1]
movzx edx, byte [ebp + 2]
shl ecx, 8
or ecx, edx
mov eax, ebp
sub eax, ecx
mov dword [esp + 0x20], eax
mov al, byte [eax]
cmp al, 0x61
jb 0x43a06a
mov ecx, dword [esp + 0x154]
mov edx, dword [ecx + 4]
mov ebx, dword [ecx]
mov dword [esp + 0x28], edx
mov dword [esp + 0x154], ebx
jmp 0x43a079
mov ebx, dword [esp + 0x154]
mov dword [esp + 0x28], 0
cmp al, 0x58
je 0x43e22d
cmp al, 0x59
je 0x43e22d
cmp al, 0x5a
je 0x43e22d
cmp al, 0x5b
je 0x43e22d
cmp al, 0x5d
je 0x43e22d
cmp al, 0x5f
je 0x43a0ad
cmp al, 0x62
jne 0x43a162
mov ecx, dword [esp + 0x20]
movzx eax, byte [ecx + 3]
movzx ecx, byte [ecx + 4]
shl eax, 8
or eax, ecx
lea ecx, [eax + eax]
cmp ecx, dword [edi + 0x14]
mov dword [esp + 0x2c], eax
mov dword [edi + 0x80], eax
jl 0x43a0d9
mov dword [edi + 0x38], 1
jmp 0x43a10a
mov edx, dword [edi + 0x10]
sub edx, eax
mov eax, dword [edi + 0xc]
mov edx, dword [eax + edx*4]
mov dword [eax + ecx*4], edx
mov edx, dword [edi + 0xc]
mov eax, esi
sub eax, dword [edi + 0x64]
cmp dword [esp + 0x148], ecx
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [esp + 0x2c]
jg 0x43a10a
add ecx, 2
mov dword [esp + 0x148], ecx
mov ecx, dword [edi + 0x90]
test ecx, ecx
je 0x43a162
cmp dword [ecx + 4], eax
jne 0x43a162
mov ebx, ecx
mov eax, dword [ebx]
mov dword [edi + 0x90], eax
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
add edx, edx
add edx, edx
push edx
mov dword [esp + 0x148], ecx
mov ecx, dword [edi + 0xc]
push eax
push ecx
call fcn.00410f70
mov edx, dword [ebx + 0x18]
mov eax, dword [esp + 0x44]
mov ebp, dword [ebx + 8]
add esp, 0xc
mov dword [esp + 0x148], edx
mov dword [esp + 0x150], eax
jmp 0x43970b
cmp byte [ebp], 0x55
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x150], ecx
je 0x43a17d
cmp esi, dword [esp + 0x28]
jne 0x43dbb2
add ebp, 3
jmp 0x43970b
cmp dword [edi + 0x3c], ebx
je 0x43a193
cmp esi, dword [edi + 0x64]
je case.0x43f345.14
test byte [esp + 0x150], 2
je case.0x439731.1
mov eax, dword [edi + 0x64]
cmp esi, eax
je 0x43a20b
cmp esi, dword [edi + 0x68]
je case.0x43f345.14
mov ecx, dword [edi + 0x18]
cmp ecx, ebx
je 0x43a1de
cmp esi, eax
jbe case.0x43f345.14
mov edx, dword [esp + 0x30]
push edx
lea edx, [edi + 0x1c]
push edx
push eax
push ecx
push esi
call fcn.00431eb9
add esp, 0x14
test eax, eax
je case.0x43f345.14
inc ebp
jmp 0x43970b
mov ecx, dword [edi + 0x1c]
add eax, ecx
cmp esi, eax
jb case.0x43f345.14
mov eax, esi
sub eax, ecx
mov dl, byte [eax]
cmp dl, byte [edi + 0x2c]
jne case.0x43f345.14
cmp ecx, 1
je 0x43a20b
mov al, byte [eax + 1]
cmp al, byte [edi + 0x2d]
jne case.0x43f345.14
inc ebp
jmp 0x43970b
cmp esi, dword [edi + 0x64]
jne case.0x43f345.14
inc ebp
jmp 0x43970b
mov ecx, dword [edi + 0x84]
add ecx, dword [edi + 0x64]
cmp esi, ecx
jne case.0x43f345.14
inc ebp
jmp 0x43970b
mov dword [esp + 0x144], esi
inc ebp
jmp 0x43970b
test byte [esp + 0x150], 2
je 0x43a2bc
mov eax, dword [edi + 0x68]
cmp esi, eax
jae 0x43a2ad
mov ecx, dword [edi + 0x18]
cmp ecx, ebx
je 0x43a27e
mov edx, dword [esp + 0x30]
push edx
lea edx, [edi + 0x1c]
push edx
push eax
push ecx
push esi
call fcn.0043200a
add esp, 0x14
test eax, eax
je case.0x43f345.14
inc ebp
jmp 0x43970b
mov ecx, dword [edi + 0x1c]
sub eax, ecx
cmp esi, eax
ja case.0x43f345.14
mov al, byte [esi]
cmp al, byte [edi + 0x2c]
jne case.0x43f345.14
cmp ecx, 1
je 0x43a2b6
mov cl, byte [esi + 1]
cmp cl, byte [edi + 0x2d]
jne case.0x43f345.14
inc ebp
jmp 0x43970b
cmp dword [edi + 0x40], ebx
jne case.0x43f345.14
inc ebp
jmp 0x43970b
cmp dword [edi + 0x40], ebx
jne case.0x43f345.14
cmp dword [edi + 0x4c], ebx
jne case.0x439731.24
mov eax, dword [edi + 0x68]
cmp esi, eax
je 0x43a337
mov ecx, dword [edi + 0x18]
cmp ecx, ebx
je 0x43a2fe
cmp esi, eax
jae case.0x43f345.14
mov edx, dword [esp + 0x30]
push edx
lea ebx, [edi + 0x1c]
push ebx
push eax
push ecx
push esi
call fcn.0043200a
add esp, 0x14
test eax, eax
je case.0x43f345.14
jmp 0x43a32a
mov ecx, dword [edi + 0x1c]
lea ebx, [edi + 0x1c]
sub eax, ecx
cmp esi, eax
ja case.0x43f345.14
mov al, byte [esi]
cmp al, byte [edi + 0x2c]
jne case.0x43f345.14
cmp ecx, 1
je 0x43a32a
mov cl, byte [esi + 1]
cmp cl, byte [edi + 0x2d]
jne case.0x43f345.14
mov edx, dword [edi + 0x68]
sub edx, dword [ebx]
cmp esi, edx
jne case.0x43f345.14
inc ebp
jmp 0x43970b
cmp esi, dword [edi + 0x68]
jb case.0x43f345.14
inc ebp
jmp 0x43970b
cmp dword [esp + 0x30], ebx
je 0x43a490
cmp esi, dword [edi + 0x64]
je 0x43a408
mov cl, byte [esi - 1]
lea eax, [esi - 1]
and cl, 0xc0
mov dword [esp + 0x18], eax
cmp cl, 0x80
jne 0x43a381
mov dl, byte [eax - 1]
dec eax
and dl, 0xc0
cmp dl, 0x80
je 0x43a371
mov dword [esp + 0x18], eax
cmp eax, dword [edi + 0x74]
jae 0x43a389
mov dword [edi + 0x74], eax
movzx edx, byte [eax]
cmp edx, 0xc0
jb 0x43a3f0
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x485a40]
mov ebx, dword [eax*4 + 0x485a28]
and ebx, edx
lea ecx, [eax + eax*2]
add ecx, ecx
shl ebx, cl
mov edx, ebx
mov ebx, 1
cmp eax, ebx
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ebx
jl 0x43a3f0
lea ebx, [ebx]
mov edx, dword [esp + 0x18]
movzx ebx, byte [ebx + edx]
mov edx, dword [esp + 0x24]
and ebx, 0x3f
sub ecx, 6
shl ebx, cl
or edx, ebx
mov ebx, dword [esp + 0x20]
inc ebx
cmp ebx, eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ebx
jle 0x43a3c9
cmp edx, 0x100
jae 0x43a408
mov eax, dword [edi + 0x34]
test byte [edx + eax], 0x10
je 0x43a408
mov ecx, 1
jmp 0x43a40a
xor ecx, ecx
mov dword [esp + 0x20], ecx
cmp esi, dword [edi + 0x68]
jb 0x43a41d
mov eax, dword [edi + 0x78]
test eax, eax
jmp 0x43a4bf
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x43a478
mov ecx, edx
and ecx, 0x3f
movzx eax, byte [ecx + 0x485a40]
mov ebx, dword [eax*4 + 0x485a28]
and ebx, edx
lea ecx, [eax + eax*2]
add ecx, ecx
shl ebx, cl
mov edx, ebx
mov ebx, 1
cmp eax, ebx
mov dword [esp + 0x18], ebx
jl 0x43a474
lea ebx, [ebx]
movzx ebx, byte [ebx + esi]
and ebx, 0x3f
sub ecx, 6
shl ebx, cl
or edx, ebx
mov ebx, dword [esp + 0x18]
inc ebx
cmp ebx, eax
mov dword [esp + 0x18], ebx
jle 0x43a459
mov ecx, dword [esp + 0x20]
cmp edx, 0x100
jae 0x43a4da
mov eax, dword [edi + 0x34]
test byte [edx + eax], 0x10
je 0x43a4da
mov eax, 1
jmp 0x43a4ee
cmp esi, dword [edi + 0x64]
jne 0x43a499
xor ecx, ecx
jmp 0x43a4b5
cmp esi, dword [edi + 0x74]
ja 0x43a4a4
lea ecx, [esi - 1]
mov dword [edi + 0x74], ecx
movzx eax, byte [esi - 1]
mov edx, dword [edi + 0x34]
movzx ecx, byte [eax + edx]
shr ecx, 4
and ecx, 1
cmp esi, dword [edi + 0x68]
jb 0x43a4de
mov eax, dword [edi + 0x78]
cmp eax, ebx
je 0x43a4da
cmp esi, dword [esp + 0x144]
jbe 0x43a4da
cmp eax, 1
mov dword [edi + 0x58], 1
jg 0x43e272
xor eax, eax
jmp 0x43a4ee
movzx eax, byte [esi]
mov edx, dword [edi + 0x34]
movzx eax, byte [eax + edx]
shr eax, 4
and eax, 1
mov dl, byte [ebp]
inc ebp
cmp dl, 5
jne 0x43a50c
cmp eax, ecx
jne 0x43970b
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x128
ret
cmp eax, ecx
je 0x43970b
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x128
ret
mov ecx, dword [edi + 0x18]
cmp ecx, ebx
je 0x43a54d
mov eax, dword [edi + 0x68]
cmp esi, eax
jae case.0x439731.13
mov edx, dword [esp + 0x30]
push edx
lea edx, [edi + 0x1c]
push edx
push eax
push ecx
push esi
call fcn.0043200a
add esp, 0x14
test eax, eax
jne case.0x43f345.14
jmp case.0x439731.13
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x68]
sub ecx, eax
cmp esi, ecx
ja case.0x439731.13
mov dl, byte [esi]
cmp dl, byte [edi + 0x2c]
jne case.0x439731.13
cmp eax, 1
je case.0x43f345.14
mov al, byte [esi + 1]
cmp al, byte [edi + 0x2d]
je case.0x43f345.14
mov eax, dword [edi + 0x68]
mov ecx, esi
inc esi
cmp ecx, eax
jae 0x43e24a
cmp dword [esp + 0x30], 0
je 0x43a59e
cmp esi, eax
jae 0x43a59e
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
jne 0x43a59e
inc esi
cmp esi, dword [edi + 0x68]
jb 0x43a58e
inc ebp
jmp 0x43970b
mov eax, esi
inc esi
cmp eax, dword [edi + 0x68]
jae 0x43e282
inc ebp
jmp 0x43970b
cmp esi, dword [edi + 0x68]
jae 0x43e282
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x30], 0
je 0x43a614
cmp edx, 0xc0
jb 0x43a614
mov ecx, edx
and ecx, 0x3f
movzx eax, byte [ecx + 0x485a40]
mov ebx, dword [eax*4 + 0x485a28]
lea ecx, [eax + eax*2]
and ebx, edx
add ecx, ecx
shl ebx, cl
mov edx, ebx
mov dword [esp + 0x24], edx
test eax, eax
jle 0x43a614
nop
movzx ebx, byte [esi]
mov edx, dword [esp + 0x24]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
dec eax
inc esi
or edx, ebx
mov dword [esp + 0x24], edx
test eax, eax
jg 0x43a5f9
cmp edx, 0x100
jae 0x43a629
mov eax, dword [edi + 0x34]
test byte [edx + eax], 4
jne case.0x43f345.14
inc ebp
jmp 0x43970b
cmp esi, dword [edi + 0x68]
jae 0x43e282
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x30], 0
je 0x43a694
cmp edx, 0xc0
jb 0x43a694
mov ecx, edx
and ecx, 0x3f
movzx eax, byte [ecx + 0x485a40]
mov ebx, dword [eax*4 + 0x485a28]
lea ecx, [eax + eax*2]
and ebx, edx
add ecx, ecx
shl ebx, cl
mov edx, ebx
mov dword [esp + 0x24], edx
test eax, eax
jle 0x43a694
jmp 0x43a679
movzx ebx, byte [esi]
mov edx, dword [esp + 0x24]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
dec eax
inc esi
or edx, ebx
mov dword [esp + 0x24], edx
test eax, eax
jg 0x43a679
cmp edx, 0x100
jae case.0x43f345.14
mov eax, dword [edi + 0x34]
test byte [edx + eax], 4
je case.0x43f345.14
inc ebp
jmp 0x43970b
cmp esi, dword [edi + 0x68]
jae 0x43e282
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x30], 0
je 0x43a714
cmp edx, 0xc0
jb 0x43a714
mov ecx, edx
and ecx, 0x3f
movzx eax, byte [ecx + 0x485a40]
mov ebx, dword [eax*4 + 0x485a28]
lea ecx, [eax + eax*2]
and ebx, edx
add ecx, ecx
shl ebx, cl
mov edx, ebx
mov dword [esp + 0x24], edx
test eax, eax
jle 0x43a714
lea esp, [esp]
movzx ebx, byte [esi]
mov edx, dword [esp + 0x24]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
dec eax
inc esi
or edx, ebx
mov dword [esp + 0x24], edx
test eax, eax
jg 0x43a6f9
cmp edx, 0x100
jae 0x43a729
mov eax, dword [edi + 0x34]
test byte [edx + eax], 1
jne case.0x43f345.14
inc ebp
jmp 0x43970b
cmp esi, dword [edi + 0x68]
jae 0x43e282
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x30], 0
xor byte [eax], al
je 0x43a794
cmp edx, 0xc0
jb 0x43a794
mov ecx, edx
and ecx, 0x3f
movzx eax, byte [ecx + 0x485a40]
mov ebx, dword [eax*4 + 0x485a28]
lea ecx, [eax + eax*2]
and ebx, edx
add ecx, ecx
shl ebx, cl
mov edx, ebx
mov dword [esp + 0x24], edx
test eax, eax
jle 0x43a794
jmp 0x43a779
movzx ebx, byte [esi]
mov edx, dword [esp + 0x24]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
dec eax
inc esi
or edx, ebx
mov dword [esp + 0x24], edx
test eax, eax
jg 0x43a779
cmp edx, 0x100
jae case.0x43f345.14
mov eax, dword [edi + 0x34]
test byte [edx + eax], 1
je case.0x43f345.14
inc ebp
jmp 0x43970b
cmp esi, dword [edi + 0x68]
jae 0x43e282
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x30], 0
je 0x43a814
cmp edx, 0xc0
jb 0x43a814
mov ecx, edx
and ecx, 0x3f
movzx eax, byte [ecx + 0x485a40]
mov ebx, dword [eax*4 + 0x485a28]
lea ecx, [eax + eax*2]
and ebx, edx
add ecx, ecx
shl ebx, cl
mov edx, ebx
mov dword [esp + 0x24], edx
test eax, eax
jle 0x43a814
lea esp, [esp]
movzx ebx, byte [esi]
mov edx, dword [esp + 0x24]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
dec eax
inc esi
or edx, ebx
mov dword [esp + 0x24], edx
test eax, eax
jg 0x43a7f9
cmp edx, 0x100
jae 0x43a829
mov eax, dword [edi + 0x34]
test byte [edx + eax], 0x10
jne case.0x43f345.14
inc ebp
jmp 0x43970b
cmp esi, dword [edi + 0x68]
jae 0x43e282
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x30], 0
je 0x43a894
cmp edx, 0xc0
jb 0x43a894
mov ecx, edx
and ecx, 0x3f
movzx eax, byte [ecx + 0x485a40]
mov ebx, dword [eax*4 + 0x485a28]
lea ecx, [eax + eax*2]
and ebx, edx
add ecx, ecx
shl ebx, cl
mov edx, ebx
mov dword [esp + 0x24], edx
test eax, eax
jle 0x43a894
jmp 0x43a879
movzx ebx, byte [esi]
mov edx, dword [esp + 0x24]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
dec eax
inc esi
or edx, ebx
mov dword [esp + 0x24], edx
test eax, eax
jg 0x43a879
cmp edx, 0x100
jae case.0x43f345.14
mov eax, dword [edi + 0x34]
test byte [edx + eax], 0x10
je case.0x43f345.14
inc ebp
jmp 0x43970b
cmp esi, dword [edi + 0x68]
jae 0x43e282
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x30], ebx
je 0x43a914
cmp eax, 0xc0
jb 0x43a914
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x485a40]
mov ebx, dword [edx*4 + 0x485a28]
lea ecx, [edx + edx*2]
and ebx, eax
add ecx, ecx
shl ebx, cl
mov eax, ebx
test edx, edx
jle 0x43a914
jmp 0x43a8fd
mov ecx, dword [esp + 0x18]
movzx ebx, byte [esi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
dec edx
inc esi
mov dword [esp + 0x18], ecx
or eax, ebx
test edx, edx
jg 0x43a8f9
cmp eax, 0xd
ja 0x43a942
je 0x43a931
cmp eax, 0xa
je 0x43a969
jbe case.0x43f345.14
cmp eax, 0xc
ja case.0x43f345.14
jmp 0x43a95f
cmp esi, dword [edi + 0x68]
jae 0x43a969
cmp byte [esi], 0xa
jne 0x43a969
inc esi
inc ebp
jmp 0x43970b
cmp eax, 0x85
je 0x43a95f
cmp eax, 0x2027
jbe case.0x43f345.14
cmp eax, 0x2029
ja case.0x43f345.14
cmp dword [edi + 0x5c], 0
jne case.0x43f345.14
inc ebp
jmp 0x43970b
cmp esi, dword [edi + 0x68]
jae 0x43e282
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x30], ebx
je 0x43a9c8
cmp eax, 0xc0
jb 0x43a9c8
mov edx, eax
and edx, 0x3f
movzx edx, byte [edx + 0x485a40]
mov ebx, dword [edx*4 + 0x485a28]
lea ecx, [edx + edx*2]
and ebx, eax
add ecx, ecx
shl ebx, cl
mov eax, ebx
test edx, edx
jle 0x43a9c8
jmp 0x43a9b1
mov ecx, dword [esp + 0x18]
movzx ebx, byte [esi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
dec edx
inc esi
mov dword [esp + 0x18], ecx
or eax, ebx
test edx, edx
jg 0x43a9ad
cmp eax, 0x180e
ja 0x43aa0b
je case.0x43f345.14
cmp eax, 0xa0
ja 0x43a9fa
je case.0x43f345.14
cmp eax, 9
je case.0x43f345.14
cmp eax, 0x20
je case.0x43f345.14
inc ebp
jmp 0x43970b
cmp eax, 0x1680
je case.0x43f345.14
inc ebp
jmp 0x43970b
cmp eax, 0x205f
ja 0x43aa3b
je case.0x43f345.14
cmp eax, 0x2000
jb 0x43aa46
cmp eax, 0x200a
jbe case.0x43f345.14
cmp eax, 0x202f
je case.0x43f345.14
inc ebp
jmp 0x43970b
cmp eax, 0x3000
je case.0x43f345.14
inc ebp
jmp 0x43970b
cmp esi, dword [edi + 0x68]
jae 0x43e282
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x30], ebx
je 0x43aaa5
cmp eax, 0xc0
jb 0x43aaa5
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x485a40]
mov ebx, dword [edx*4 + 0x485a28]
lea ecx, [edx + edx*2]
and ebx, eax
add ecx, ecx
shl ebx, cl
mov eax, ebx
test edx, edx
jle 0x43aaa5
jmp 0x43aa8e
mov ecx, dword [esp + 0x18]
movzx ebx, byte [esi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
dec edx
inc esi
mov dword [esp + 0x18], ecx
or eax, ebx
test edx, edx
jg 0x43aa8a
cmp eax, 0x180e
ja 0x43aadc
je 0x43ab13
cmp eax, 0xa0
ja 0x43aacb
je 0x43ab13
cmp eax, 9
je 0x43ab13
cmp eax, 0x20
jne case.0x43f345.14
inc ebp
jmp 0x43970b
cmp eax, 0x1680
jne case.0x43f345.14
inc ebp
jmp 0x43970b
cmp eax, 0x205f
ja 0x43ab08
je 0x43ab13
cmp eax, 0x2000
jb case.0x43f345.14
cmp eax, 0x200a
jbe 0x43ab13
cmp eax, 0x202f
jne case.0x43f345.14
inc ebp
jmp 0x43970b
cmp eax, 0x3000
jne case.0x43f345.14
inc ebp
jmp 0x43970b
cmp esi, dword [edi + 0x68]
jae 0x43e282
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x30], ebx
je 0x43ab74
cmp eax, 0xc0
jb 0x43ab74
mov edx, eax
and edx, 0x3f
movzx edx, byte [edx + 0x485a40]
mov ebx, dword [edx*4 + 0x485a28]
lea ecx, [edx + edx*2]
and ebx, eax
add ecx, ecx
shl ebx, cl
mov eax, ebx
test edx, edx
jle 0x43ab74
jmp 0x43ab5d
mov ecx, dword [esp + 0x18]
movzx ebx, byte [esi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
dec edx
inc esi
mov dword [esp + 0x18], ecx
or eax, ebx
test edx, edx
jg 0x43ab59
cmp eax, 0x85
ja 0x43ab95
je case.0x43f345.14
cmp eax, 0xa
jb 0x43aba7
cmp eax, 0xd
jbe case.0x43f345.14
inc ebp
jmp 0x43970b
cmp eax, 0x2028
jb 0x43aba7
cmp eax, 0x2029
jbe case.0x43f345.14
inc ebp
jmp 0x43970b
cmp esi, dword [edi + 0x68]
jae 0x43e282
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x30], ebx
je 0x43ac06
cmp eax, 0xc0
jb 0x43ac06
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x485a40]
mov ebx, dword [edx*4 + 0x485a28]
lea ecx, [edx + edx*2]
and ebx, eax
add ecx, ecx
shl ebx, cl
mov eax, ebx
test edx, edx
jle 0x43ac06
jmp 0x43abef
mov ecx, dword [esp + 0x18]
movzx ebx, byte [esi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
dec edx
inc esi
mov dword [esp + 0x18], ecx
or eax, ebx
test edx, edx
jg 0x43abeb
cmp eax, 0x85
ja 0x43ac27
je 0x43ac3d
cmp eax, 0xa
jb case.0x43f345.14
cmp eax, 0xd
ja case.0x43f345.14
inc ebp
jmp 0x43970b
cmp eax, 0x2028
jb case.0x43f345.14
cmp eax, 0x2029
ja case.0x43f345.14
inc ebp
jmp 0x43970b
movzx eax, byte [ebp + 1]
movzx edx, byte [ebp + 2]
shl eax, 8
or eax, edx
add eax, eax
add ebp, 3
cmp eax, dword [esp + 0x148]
mov dword [esp + 0x24], eax
jge 0x43ac75
mov ecx, dword [edi + 0xc]
lea eax, [ecx + eax*4]
mov ecx, dword [eax]
cmp ecx, ebx
jl 0x43ac75
mov ebx, dword [eax + 4]
sub ebx, ecx
jmp 0x43ac84
cmp dword [edi + 0x48], ebx
je 0x43ac7e
xor ebx, ebx
jmp 0x43ac84
mov ebx, dword [edi + 0x68]
sub ebx, esi
inc ebx
mov cl, byte [ebp]
movzx eax, cl
lea edx, [eax - 0x46]
cmp edx, 7
ja case.default.0x43ac9d
movzx edx, byte [edx + 0x43f645]
jmp dword [edx*4 + 0x43f63d]
add eax, 0xffffffba
movzx ecx, al
and ecx, 1
mov dword [esp + 0x2c], ecx
movsx ecx, byte [eax + 0x4864d8]
movsx eax, byte [eax + 0x4864e0]
inc ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x43ad11
mov dword [esp + 0x1c], 0x7fffffff
jmp 0x43ad11
movzx eax, byte [ebp + 1]
xor edx, edx
cmp cl, 0x4d
movzx ecx, byte [ebp + 2]
sete dl
shl eax, 8
or eax, ecx
mov dword [esp + 0x20], eax
movzx eax, byte [ebp + 3]
mov dword [esp + 0x2c], edx
movzx edx, byte [ebp + 4]
shl eax, 8
or eax, edx
mov dword [esp + 0x1c], eax
jne 0x43ad0e
mov dword [esp + 0x1c], 0x7fffffff
add ebp, 5
test ebx, ebx
je 0x43970b
mov eax, dword [esp + 0x20]
cmp eax, 1
mov dword [esp + 0x14], 1
jl 0x43ad5f
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x24]
push eax
push edi
push ebx
push esi
push ecx
call fcn.00432196
add esp, 0x14
test eax, eax
je 0x43e358
mov eax, dword [esp + 0x14]
inc eax
add esi, ebx
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
jle 0x43ad2a
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
je 0x43970b
cmp dword [esp + 0x2c], 0
je 0x43e289
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x154]
mov edx, dword [esp + 0x150]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x15c]
inc eax
push eax
push 0
push ecx
mov ecx, dword [esp + 0x150]
push edx
push edi
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x15c]
push eax
push ecx
push ebp
push esi
call fcn.00439699
add esp, 0x24
test eax, eax
jne 0x43f49d
jmp 0x43adc9
mov edx, dword [esp + 0x1c]
cmp dword [esp + 0x14], edx
jge case.0x43f345.14
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x24]
push eax
push edi
push ebx
push esi
push ecx
call fcn.00432196
add esp, 0x14
test eax, eax
je 0x43e358
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x150]
inc dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x14c]
push 0
push eax
mov eax, dword [esp + 0x150]
push ecx
push edi
push edx
push eax
add esi, ebx
push ebp
push esi
call fcn.00439699
add esp, 0x24
test eax, eax
je 0x43adc9
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x128
ret
mov edx, dword [esp + 0x150]
mov eax, dword [esp + 0x24]
push edx
push edi
push ebx
push esi
push eax
call fcn.00432196
add esp, 0x14
test eax, eax
je 0x43e358
add esi, ebx
jmp 0x43970b
mov al, byte [ebp + 0x21]
lea ecx, [ebp + 1]
add ebp, 0x21
mov dword [esp + 0x20], ecx
movzx ecx, al
lea edx, [ecx - 0x46]
cmp edx, 7
ja case.default.0x43ae84
movzx edx, byte [edx + 0x43f655]
jmp dword [edx*4 + 0x43f64d]
add ecx, 0xffffffba
movzx eax, cl
mov edx, 1
and eax, edx
mov dword [esp + 0x2c], eax
movsx eax, byte [ecx + 0x4864d8]
movsx ecx, byte [ecx + 0x4864e0]
add ebp, edx
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x43af06
mov dword [esp + 0x1c], 0x7fffffff
jmp 0x43af06
movzx edx, byte [ebp + 2]
xor ecx, ecx
cmp al, 0x4d
movzx eax, byte [ebp + 1]
sete cl
shl eax, 8
or eax, edx
movzx edx, byte [ebp + 4]
mov dword [esp + 0x2c], ecx
movzx ecx, byte [ebp + 3]
shl ecx, 8
or ecx, edx
mov dword [esp + 0x1c], ecx
jne 0x43aef1
mov dword [esp + 0x1c], 0x7fffffff
add ebp, 5
mov edx, 1
jmp 0x43af06
mov edx, 1
mov dword [esp + 0x1c], edx
mov eax, edx
cmp dword [esp + 0x30], 0
mov dword [esp + 0x14], edx
je 0x43afc5
cmp eax, edx
jl 0x43b001
cmp esi, dword [edi + 0x68]
jae 0x43e24a
movzx edx, byte [esi]
inc esi
cmp edx, 0xc0
jb 0x43af7f
mov ecx, edx
and ecx, 0x3f
movzx ebx, byte [ecx + 0x485a40]
lea ecx, [ebx + ebx*2]
add ecx, ecx
mov dword [esp + 0x28], ecx
mov ecx, dword [ebx*4 + 0x485a28]
and ecx, edx
mov edx, ecx
mov ecx, dword [esp + 0x28]
shl edx, cl
test ebx, ebx
jle 0x43af7f
mov ecx, dword [esp + 0x28]
dec ebx
mov dword [esp + 0x18], ebx
movzx ebx, byte [esi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
inc esi
mov dword [esp + 0x28], ecx
or edx, ebx
mov ebx, dword [esp + 0x18]
test ebx, ebx
jg 0x43af5c
cmp edx, 0xff
jbe 0x43af94
cmp dword [esp + 0x24], 0x4e
je case.0x43f345.14
jmp 0x43afb2
mov ecx, edx
and ecx, 7
mov ebx, 1
shl ebx, cl
mov ecx, dword [esp + 0x20]
shr edx, 3
mov dl, byte [edx + ecx]
test dl, bl
je case.0x43f345.14
mov ecx, dword [esp + 0x14]
inc ecx
cmp ecx, eax
mov dword [esp + 0x14], ecx
jle 0x43af1d
jmp 0x43b001
cmp eax, edx
jl 0x43b001
cmp esi, dword [edi + 0x68]
jae 0x43e24a
movzx edx, byte [esi]
mov ecx, edx
and ecx, 7
mov ebx, 1
shl ebx, cl
mov ecx, dword [esp + 0x20]
shr edx, 3
mov dl, byte [edx + ecx]
inc esi
test dl, bl
je case.0x43f345.14
mov ecx, dword [esp + 0x14]
inc ecx
cmp ecx, eax
mov dword [esp + 0x14], ecx
jle 0x43afc9
mov ebx, dword [esp + 0x1c]
cmp eax, ebx
je 0x43970b
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x14], eax
je 0x43e4d9
cmp dword [esp + 0x30], 0
je 0x43e421
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x148]
mov ebx, dword [esp + 0x144]
inc eax
push eax
push 0
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x15c]
push eax
push ecx
push edi
push edx
push ebx
push ebp
push esi
call fcn.00439699
add esp, 0x24
test eax, eax
jne 0x43f49d
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x1c]
jge case.0x43f345.14
cmp esi, dword [edi + 0x68]
jae 0x43e40f
movzx eax, byte [esi]
inc esi
cmp eax, 0xc0
jb 0x43e394
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x485a40]
mov ebx, dword [edx*4 + 0x485a28]
lea ecx, [edx + edx*2]
and ebx, eax
add ecx, ecx
shl ebx, cl
mov eax, ebx
test edx, edx
jle 0x43e394
jmp 0x43e37d
movzx ecx, byte [ebp + 1]
movzx edx, byte [ebp + 2]
shl ecx, 8
or ecx, edx
lea eax, [ebp + 3]
add ebp, ecx
mov cl, byte [ebp]
mov dword [esp + 0x20], eax
movzx eax, cl
lea edx, [eax - 0x46]
cmp edx, 7
ja case.default.0x43b0e5
movzx edx, byte [edx + 0x43f665]
jmp dword [edx*4 + 0x43f65d]
movsx ebx, byte [eax + 0x486492]
add eax, 0xffffffba
movzx ecx, al
movsx eax, byte [eax + 0x4864e0]
and ecx, 1
inc ebp
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x43b15c
mov dword [esp + 0x1c], 0x7fffffff
jmp 0x43b15c
movzx ebx, byte [ebp + 1]
movzx edx, byte [ebp + 4]
xor eax, eax
cmp cl, 0x4d
movzx ecx, byte [ebp + 2]
sete al
shl ebx, 8
or ebx, ecx
mov dword [esp + 0x2c], eax
movzx eax, byte [ebp + 3]
shl eax, 8
or eax, edx
mov dword [esp + 0x1c], eax
jne 0x43b14e
mov dword [esp + 0x1c], 0x7fffffff
add ebp, 5
jmp 0x43b15c
mov ebx, 1
mov dword [esp + 0x1c], ebx
cmp ebx, 1
mov dword [esp + 0x14], 1
jl 0x43b203
cmp esi, dword [edi + 0x68]
jae 0x43e24a
movzx ecx, byte [esi]
inc esi
cmp dword [esp + 0x30], 0
je 0x43b1dc
cmp ecx, 0xc0
jb 0x43b1dc
mov eax, ecx
and eax, 0x3f
movzx eax, byte [eax + 0x485a40]
lea edx, [eax + eax*2]
add edx, edx
mov dword [esp + 0x28], edx
mov edx, dword [eax*4 + 0x485a28]
and edx, ecx
mov ecx, dword [esp + 0x28]
shl edx, cl
mov ecx, edx
mov dword [esp + 0x24], ecx
test eax, eax
jle 0x43b1dc
mov edi, edi
movzx edx, byte [esi]
mov ecx, dword [esp + 0x28]
sub ecx, 6
and edx, 0x3f
shl edx, cl
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x24]
dec eax
or ecx, edx
inc esi
mov dword [esp + 0x24], ecx
test eax, eax
jg 0x43b1b9
mov eax, dword [esp + 0x20]
push eax
push ecx
call fcn.00431bd5
add esp, 8
test eax, eax
je case.0x43f345.14
mov eax, dword [esp + 0x14]
inc eax
cmp eax, ebx
mov dword [esp + 0x14], eax
jle 0x43b16d
mov eax, dword [esp + 0x1c]
cmp ebx, eax
je 0x43970b
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x14], ebx
je 0x43e723
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x154]
mov edx, dword [esp + 0x150]
inc eax
push eax
push 0
push ecx
mov ecx, dword [esp + 0x150]
push edx
push edi
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x15c]
push eax
push ecx
push ebp
push esi
call fcn.00439699
add esp, 0x24
test eax, eax
jne 0x43f49d
cmp ebx, dword [esp + 0x1c]
jge case.0x43f345.14
cmp esi, dword [edi + 0x68]
jae 0x43e24a
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x30], 0
je 0x43b2c7
cmp edx, 0xc0
jb 0x43b2c7
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x485a40]
mov ebx, dword [eax*4 + 0x485a28]
lea ecx, [eax + eax*2]
and ebx, edx
add ecx, ecx
shl ebx, cl
mov edx, ebx
mov dword [esp + 0x24], edx
test eax, eax
jle 0x43b2c7
movzx ebx, byte [esi]
mov edx, dword [esp + 0x24]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
dec eax
inc esi
or edx, ebx
mov dword [esp + 0x24], edx
test eax, eax
jg 0x43b2ac
mov ecx, dword [esp + 0x20]
push ecx
push edx
call fcn.00431bd5
add esp, 8
test eax, eax
je case.0x43f345.14
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x150]
mov ebx, dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x14c]
push 0
push eax
mov eax, dword [esp + 0x150]
push ecx
push edi
push edx
push eax
push ebp
inc ebx
push esi
mov dword [esp + 0x38], ebx
call fcn.00439699
add esp, 0x24
test eax, eax
je 0x43b260
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x128
ret
cmp dword [esp + 0x30], ebx
je 0x43b37c
movzx eax, byte [ebp + 1]
inc ebp
mov ecx, 1
cmp eax, 0xc0
jb 0x43b34d
and eax, 0x3f
movzx ecx, byte [eax + 0x485a40]
inc ecx
mov edx, dword [edi + 0x68]
sub edx, esi
cmp ecx, edx
jg 0x43e892
cmp ecx, ebx
jle 0x43970b
mov al, byte [ebp]
mov dl, byte [esi]
dec ecx
inc esi
inc ebp
cmp al, dl
jne case.0x43f345.14
cmp ecx, ebx
jle 0x43970b
jmp 0x43b362
mov eax, dword [edi + 0x68]
sub eax, esi
cmp eax, 1
jl 0x43e282
mov cl, byte [esi]
inc esi
cmp byte [ebp + 1], cl
jne case.0x43f345.14
add ebp, 2
jmp 0x43970b
cmp dword [esp + 0x30], ebx
je 0x43b4c5
movzx ecx, byte [ebp + 1]
inc ebp
mov edx, ecx
mov eax, 1
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp edx, 0xc0
jb 0x43b413
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x485a40]
mov ebx, dword [eax*4 + 0x485a28]
and ebx, edx
lea ecx, [eax + eax*2]
add ecx, ecx
shl ebx, cl
mov edx, ebx
mov ebx, 1
cmp eax, ebx
mov dword [esp + 0x18], ebx
jl 0x43b40a
movzx ebx, byte [ebx + ebp]
and ebx, 0x3f
sub ecx, 6
shl ebx, cl
or edx, ebx
mov ebx, dword [esp + 0x18]
inc ebx
cmp ebx, eax
mov dword [esp + 0x18], ebx
jle 0x43b3ef
mov ecx, dword [esp + 0x28]
inc eax
mov dword [esp + 0x20], eax
mov ebx, dword [edi + 0x68]
sub ebx, esi
cmp eax, ebx
jg 0x43e358
cmp edx, 0x80
jae 0x43b449
movzx edx, byte [esi]
mov eax, dword [edi + 0x30]
mov dl, byte [edx + eax]
inc esi
inc ebp
cmp byte [ecx + eax], dl
je 0x43970b
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x128
ret
movzx ecx, byte [esi]
inc esi
cmp ecx, 0xc0
jb 0x43b4ac
mov eax, ecx
and eax, 0x3f
movzx eax, byte [eax + 0x485a40]
lea ebx, [eax + eax*2]
add ebx, ebx
mov dword [esp + 0x28], ebx
mov ebx, dword [eax*4 + 0x485a28]
and ebx, ecx
mov ecx, dword [esp + 0x28]
shl ebx, cl
mov ecx, ebx
mov dword [esp + 0x18], ecx
test eax, eax
jle 0x43b4ac
lea ebx, [ebx]
movzx ebx, byte [esi]
mov ecx, dword [esp + 0x28]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x18]
dec eax
or ecx, ebx
inc esi
mov dword [esp + 0x18], ecx
test eax, eax
jg 0x43b489
add ebp, dword [esp + 0x20]
cmp edx, ecx
je 0x43970b
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x128
ret
mov ecx, dword [edi + 0x68]
sub ecx, esi
cmp ecx, 1
jl 0x43e282
movzx ecx, byte [esi]
mov eax, dword [edi + 0x30]
movzx edx, byte [ebp + 1]
mov cl, byte [ecx + eax]
inc esi
cmp byte [edx + eax], cl
jne case.0x43f345.14
add ebp, 2
jmp 0x43970b
movzx ebx, byte [ebp + 1]
movzx edx, byte [ebp + 2]
shl ebx, 8
or ebx, edx
mov dword [esp + 0x1c], ebx
add ebp, 3
jmp 0x43b593
mov eax, 1
mov dword [esp + 0x28], eax
movzx eax, byte [ebp + 1]
movzx edx, byte [ebp + 2]
shl eax, 8
or eax, edx
mov dword [esp + 0x1c], eax
xor eax, eax
xor ebx, ebx
cmp cl, 0x26
sete al
add ebp, 3
mov dword [esp + 0x2c], eax
jmp 0x43b593
mov eax, 1
xor ebx, ebx
mov dword [esp + 0x28], eax
add ebp, eax
jmp 0x43b58b
mov ebx, 1
mov dword [esp + 0x28], ebx
add ebp, ebx
jmp 0x43b58b
mov eax, 1
xor ebx, ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], eax
add ebp, eax
jmp 0x43b593
movsx ebx, byte [eax + 0x4864b9]
add eax, 0xffffffe1
movzx ecx, al
movsx eax, byte [eax + 0x4864e0]
and ecx, 1
inc ebp
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x43b593
mov dword [esp + 0x1c], 0x7fffffff
cmp dword [esp + 0x30], 0
movzx eax, byte [ebp]
mov dword [esp + 0x24], eax
je 0x43b794
mov edx, 1
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], ebp
cmp eax, 0xc0
jb 0x43b633
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x485a40]
lea ecx, [edx + edx*2]
add ecx, ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [edx*4 + 0x485a28]
and ecx, eax
mov eax, ecx
mov ecx, dword [esp + 0x20]
shl eax, cl
mov ecx, 1
cmp edx, ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], ecx
jl 0x43b62e
movzx ecx, byte [ecx + ebp]
mov edx, dword [esp + 0x20]
sub edx, 6
and ecx, 0x3f
mov dword [esp + 0x24], ecx
mov ecx, edx
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x24]
shl edx, cl
mov ecx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
or eax, edx
mov edx, dword [esp + 0x34]
cmp ecx, edx
jle 0x43b5f9
mov dword [esp + 0x24], eax
inc edx
mov dword [esp + 0x20], edx
add ebp, edx
cmp edx, 1
jle 0x43b795
cmp ebx, 1
mov dword [esp + 0x14], 1
jl 0x43b686
mov eax, dword [edi + 0x68]
sub eax, edx
cmp esi, eax
ja 0x43e358
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
push ecx
push edx
push esi
call fcn.00411b63
add esp, 0xc
test eax, eax
jne 0x43e358
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
inc eax
add esi, edx
cmp eax, ebx
mov dword [esp + 0x14], eax
jle 0x43b64b
cmp ebx, dword [esp + 0x1c]
je 0x43970b
cmp dword [esp + 0x2c], 0
jne 0x43e8ab
cmp ebx, dword [esp + 0x1c]
mov dword [esp + 0x2c], esi
jge 0x43b6fd
lea esp, [esp]
mov eax, dword [edi + 0x68]
sub eax, dword [esp + 0x20]
cmp esi, eax
ja 0x43b6d8
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
push ecx
push edx
push esi
call fcn.00411b63
add esp, 0xc
test eax, eax
jne 0x43b6d8
add esi, dword [esp + 0x20]
inc ebx
cmp ebx, dword [esp + 0x1c]
jl 0x43b6a9
jmp 0x43b6fd
mov eax, dword [edi + 0x78]
test eax, eax
je 0x43b6fd
cmp esi, dword [edi + 0x68]
jb 0x43b6fd
cmp esi, dword [esp + 0x144]
jbe 0x43b6fd
cmp eax, 1
mov dword [edi + 0x58], 1
jg 0x43e272
cmp dword [esp + 0x28], 0
jne 0x43970b
mov ebx, dword [esp + 0x15c]
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x148]
inc ebx
push ebx
push 0
push eax
mov eax, dword [esp + 0x150]
push ecx
push edi
push edx
push eax
push ebp
push esi
call fcn.00439699
add esp, 0x24
test eax, eax
jne 0x43f49d
lea ecx, [ecx]
cmp esi, dword [esp + 0x2c]
je case.0x43f345.14
mov ecx, dword [esp + 0x154]
mov edx, dword [esp + 0x150]
mov eax, dword [esp + 0x148]
sub esi, dword [esp + 0x20]
push ebx
push 0
push ecx
mov ecx, dword [esp + 0x150]
push edx
push edi
push eax
push ecx
push ebp
push esi
call fcn.00439699
add esp, 0x24
test eax, eax
je 0x43b749
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x128
ret
inc ebp
test byte [esp + 0x150], 1
je 0x43b897
mov ecx, dword [edi + 0x30]
movzx eax, byte [eax + ecx]
mov dword [esp + 0x24], eax
mov eax, 1
cmp ebx, eax
jl 0x43b7d7
cmp esi, dword [edi + 0x68]
jae 0x43e24a
movzx edx, byte [esi]
movzx edx, byte [edx + ecx]
inc esi
cmp dword [esp + 0x24], edx
jne case.0x43f345.14
inc eax
cmp eax, ebx
jle 0x43b7b7
cmp ebx, dword [esp + 0x1c]
je 0x43970b
cmp dword [esp + 0x2c], 0
jne 0x43e969
cmp ebx, dword [esp + 0x1c]
mov dword [esp + 0x2c], esi
jge 0x43b834
mov eax, dword [edi + 0x68]
cmp esi, eax
jae 0x43b814
movzx edx, byte [esi]
movzx edx, byte [edx + ecx]
cmp dword [esp + 0x24], edx
jne 0x43b834
inc ebx
inc esi
cmp ebx, dword [esp + 0x1c]
jl 0x43b7f9
jmp 0x43b834
mov eax, dword [edi + 0x78]
test eax, eax
je 0x43b834
cmp esi, dword [esp + 0x144]
jbe 0x43b834
cmp eax, 1
mov dword [edi + 0x58], 1
jg 0x43e272
cmp dword [esp + 0x28], 0
jne 0x43970b
cmp esi, dword [esp + 0x2c]
jb 0x43b88a
mov ebx, dword [esp + 0x15c]
inc ebx
mov edx, dword [esp + 0x154]
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x148]
push ebx
push 0
push edx
mov edx, dword [esp + 0x150]
push eax
push edi
push ecx
push edx
push ebp
push esi
call fcn.00439699
add esp, 0x24
dec esi
test eax, eax
jne 0x43f49d
cmp esi, dword [esp + 0x2c]
jae 0x43b84d
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x128
ret
mov ecx, 1
cmp ebx, ecx
jl 0x43b8ba
cmp esi, dword [edi + 0x68]
jae 0x43e24a
movzx edx, byte [esi]
inc esi
cmp eax, edx
jne case.0x43f345.14
inc ecx
cmp ecx, ebx
jle 0x43b8a0
cmp ebx, dword [esp + 0x1c]
je 0x43970b
cmp dword [esp + 0x2c], 0
jne 0x43ea18
mov eax, dword [esp + 0x1c]
cmp ebx, eax
mov dword [esp + 0x2c], esi
jge 0x43b913
mov ecx, dword [edi + 0x68]
cmp esi, ecx
jae 0x43b8f3
movzx edx, byte [esi]
cmp dword [esp + 0x24], edx
jne 0x43b913
inc ebx
inc esi
cmp ebx, eax
jl 0x43b8de
jmp 0x43b913
mov eax, dword [edi + 0x78]
test eax, eax
je 0x43b913
cmp esi, dword [esp + 0x144]
jbe 0x43b913
cmp eax, 1
mov dword [edi + 0x58], 1
jg 0x43e272
cmp dword [esp + 0x28], 0
jne 0x43970b
cmp esi, dword [esp + 0x2c]
jb 0x43b969
mov ebx, dword [esp + 0x15c]
inc ebx
mov ecx, dword [esp + 0x154]
mov edx, dword [esp + 0x150]
mov eax, dword [esp + 0x148]
push ebx
push 0
push ecx
mov ecx, dword [esp + 0x150]
push edx
push edi
push eax
push ecx
push ebp
push esi
call fcn.00439699
add esp, 0x24
dec esi
test eax, eax
jne 0x43f49d
cmp esi, dword [esp + 0x2c]
jae 0x43b92c
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x128
ret
cmp esi, dword [edi + 0x68]
jae 0x43e282
movzx eax, byte [esi]
inc ebp
inc esi
cmp dword [esp + 0x30], ebx
je 0x43b9d4
cmp eax, 0xc0
jb 0x43b9d4
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x485a40]
mov ebx, dword [edx*4 + 0x485a28]
lea ecx, [edx + edx*2]
and ebx, eax
add ecx, ecx
shl ebx, cl
mov eax, ebx
test edx, edx
jle 0x43b9d4
jmp 0x43b9bd
mov ecx, dword [esp + 0x34]
movzx ebx, byte [esi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
dec edx
inc esi
mov dword [esp + 0x34], ecx
or eax, ebx
test edx, edx
jg 0x43b9b9
test byte [esp + 0x150], 1
je 0x43ba0d
cmp eax, 0x100
jae 0x43b9ec
mov edx, dword [edi + 0x30]
movzx eax, byte [edx + eax]
movzx ecx, byte [ebp]
mov edx, dword [edi + 0x30]
movzx ecx, byte [edx + ecx]
inc ebp
cmp ecx, eax
jne 0x43970b
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x128
ret
movzx edx, byte [ebp]
inc ebp
cmp edx, eax
jne 0x43970b
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x128
ret
movzx ebx, byte [ebp + 1]
movzx eax, byte [ebp + 2]
shl ebx, 8
or ebx, eax
mov eax, ebx
add ebp, 3
jmp 0x43baca
movzx ebx, byte [ebp + 1]
movzx edx, byte [ebp + 2]
shl ebx, 8
or ebx, edx
xor edx, edx
xor eax, eax
cmp cl, 0x33
sete dl
add ebp, 3
mov dword [esp + 0x2c], edx
jmp 0x43baca
mov ecx, 1
xor eax, eax
mov dword [esp + 0x28], ecx
add ebp, ecx
jmp 0x43bac5
mov eax, 1
mov dword [esp + 0x28], eax
add ebp, eax
jmp 0x43bac5
mov ebx, 1
xor eax, eax
mov dword [esp + 0x28], ebx
add ebp, ebx
jmp 0x43baca
movzx ebx, byte [ebp + 1]
movzx ecx, byte [ebp + 2]
shl ebx, 8
xor eax, eax
or ebx, ecx
mov dword [esp + 0x28], 1
add ebp, 3
jmp 0x43baca
lea ecx, [eax - 0x2c]
movsx ebx, byte [ecx + 0x4864e0]
movzx eax, cl
and eax, 1
inc ebp
mov dword [esp + 0x2c], eax
movsx eax, byte [ecx + 0x4864d8]
test ebx, ebx
jne 0x43baca
mov ebx, 0x7fffffff
movzx edx, byte [ebp]
inc ebp
test byte [esp + 0x150], 1
mov dword [esp + 0x24], edx
mov dword [esp + 0x14], 1
je 0x43be14
cmp dword [esp + 0x30], 0
mov ecx, dword [edi + 0x30]
movzx edx, byte [edx + ecx]
mov dword [esp + 0x24], edx
je 0x43bbab
cmp eax, 1
jl 0x43bbdb
cmp esi, dword [edi + 0x68]
jae 0x43e24a
movzx ecx, byte [esi]
inc esi
cmp ecx, 0xc0
jb 0x43bb7f
mov edx, ecx
and edx, 0x3f
movzx edx, byte [edx + 0x485a40]
mov dword [esp + 0x20], edx
lea edx, [edx + edx*2]
add edx, edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x20]
mov edx, dword [edx*4 + 0x485a28]
and edx, ecx
mov ecx, dword [esp + 0x1c]
shl edx, cl
cmp dword [esp + 0x20], 0
mov ecx, edx
mov dword [esp + 0x18], ecx
jle 0x43bb7f
movzx edx, byte [esi]
mov ecx, dword [esp + 0x1c]
dec dword [esp + 0x20]
sub ecx, 6
and edx, 0x3f
shl edx, cl
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
inc esi
or ecx, edx
cmp dword [esp + 0x20], 0
mov dword [esp + 0x18], ecx
jg 0x43bb56
cmp ecx, 0x100
jae 0x43bb8e
mov edx, dword [edi + 0x30]
movzx ecx, byte [edx + ecx]
cmp dword [esp + 0x24], ecx
je case.0x43f345.14
mov ecx, dword [esp + 0x14]
inc ecx
cmp ecx, eax
mov dword [esp + 0x14], ecx
jle 0x43bb08
jmp 0x43bbdb
cmp eax, 1
jl 0x43bbdb
cmp esi, dword [edi + 0x68]
jae 0x43e24a
movzx edx, byte [esi]
mov ecx, dword [edi + 0x30]
movzx ecx, byte [edx + ecx]
inc esi
cmp dword [esp + 0x24], ecx
je case.0x43f345.14
mov ecx, dword [esp + 0x14]
inc ecx
cmp ecx, eax
mov dword [esp + 0x14], ecx
jle 0x43bbb0
cmp eax, ebx
je 0x43970b
cmp dword [esp + 0x2c], 0
jne 0x43eac0
cmp dword [esp + 0x30], 0
mov dword [esp + 0x2c], esi
je 0x43bd70
cmp eax, ebx
mov dword [esp + 0x14], eax
jge 0x43bcc3
mov edx, 1
cmp esi, dword [edi + 0x68]
jae 0x43bca8
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x43bc7f
mov edx, eax
and edx, 0x3f
movzx edx, byte [edx + 0x485a40]
lea ecx, [edx + edx*2]
mov dword [esp + 0x18], edx
mov edx, dword [edx*4 + 0x485a28]
and edx, eax
add ecx, ecx
shl edx, cl
mov dword [esp + 0x20], 1
mov eax, edx
mov edx, dword [esp + 0x18]
cmp edx, 1
mov dword [esp + 0x1c], eax
jl 0x43bc7e
nop
mov eax, dword [esp + 0x20]
movzx edx, byte [eax + esi]
and edx, 0x3f
sub ecx, 6
shl edx, cl
inc eax
mov dword [esp + 0x20], eax
or dword [esp + 0x1c], edx
mov edx, dword [esp + 0x18]
cmp eax, edx
jle 0x43bc59
mov eax, dword [esp + 0x1c]
inc edx
cmp eax, 0x100
jae 0x43bc8d
mov ecx, dword [edi + 0x30]
movzx eax, byte [ecx + eax]
cmp dword [esp + 0x24], eax
je 0x43bcc3
mov eax, dword [esp + 0x14]
inc eax
add esi, edx
cmp eax, ebx
mov dword [esp + 0x14], eax
jl 0x43bc09
jmp 0x43bcc3
mov eax, dword [edi + 0x78]
test eax, eax
je 0x43bcc3
cmp esi, dword [esp + 0x144]
jbe 0x43bcc3
cmp eax, edx
mov dword [edi + 0x58], edx
jg 0x43e272
cmp dword [esp + 0x28], 0
jne 0x43970b
mov ebx, dword [esp + 0x15c]
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x148]
inc ebx
push ebx
push 0
push eax
mov eax, dword [esp + 0x150]
push ecx
push edi
push edx
push eax
push ebp
push esi
call fcn.00439699
add esp, 0x24
test eax, eax
jne 0x43f49d
mov ecx, esi
dec esi
cmp ecx, dword [esp + 0x2c]
je 0x43be07
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
jne 0x43bd33
lea ebx, [ebx]
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x43bd29
mov ecx, dword [esp + 0x154]
mov edx, dword [esp + 0x150]
mov eax, dword [esp + 0x148]
push ebx
push 0
push ecx
mov ecx, dword [esp + 0x150]
push edx
push edi
push eax
push ecx
push ebp
push esi
call fcn.00439699
add esp, 0x24
test eax, eax
je 0x43bd0c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x128
ret
cmp eax, ebx
jge 0x43bdb1
cmp esi, dword [edi + 0x68]
jae 0x43bd91
movzx edx, byte [esi]
mov ecx, dword [edi + 0x30]
movzx ecx, byte [edx + ecx]
cmp dword [esp + 0x24], ecx
je 0x43bdb1
inc eax
inc esi
cmp eax, ebx
jl 0x43bd74
jmp 0x43bdb1
mov eax, dword [edi + 0x78]
test eax, eax
je 0x43bdb1
cmp esi, dword [esp + 0x144]
jbe 0x43bdb1
cmp eax, 1
mov dword [edi + 0x58], 1
jg 0x43e272
cmp dword [esp + 0x28], 0
jne 0x43970b
cmp esi, dword [esp + 0x2c]
jb 0x43be07
mov ebx, dword [esp + 0x15c]
inc ebx
mov edx, dword [esp + 0x154]
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x148]
push ebx
push 0
push edx
mov edx, dword [esp + 0x150]
push eax
push edi
push ecx
push edx
push ebp
push esi
call fcn.00439699
add esp, 0x24
test eax, eax
jne 0x43f49d
dec esi
cmp esi, dword [esp + 0x2c]
jae 0x43bdca
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x128
ret
cmp dword [esp + 0x30], 0
je 0x43bebe
cmp eax, 1
jl 0x43bee5
cmp esi, dword [edi + 0x68]
jae 0x43e24a
movzx ecx, byte [esi]
inc esi
cmp ecx, 0xc0
jb 0x43bea3
mov edx, ecx
and edx, 0x3f
movzx edx, byte [edx + 0x485a40]
mov dword [esp + 0x20], edx
lea edx, [edx + edx*2]
add edx, edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x20]
mov edx, dword [edx*4 + 0x485a28]
and edx, ecx
mov ecx, dword [esp + 0x1c]
shl edx, cl
cmp dword [esp + 0x20], 0
mov ecx, edx
mov dword [esp + 0x18], ecx
jle 0x43be9f
movzx edx, byte [esi]
mov ecx, dword [esp + 0x1c]
dec dword [esp + 0x20]
sub ecx, 6
and edx, 0x3f
shl edx, cl
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
inc esi
or ecx, edx
cmp dword [esp + 0x20], 0
mov dword [esp + 0x18], ecx
jg 0x43be76
mov edx, dword [esp + 0x24]
cmp edx, ecx
je case.0x43f345.14
mov ecx, dword [esp + 0x14]
inc ecx
cmp ecx, eax
mov dword [esp + 0x14], ecx
jle 0x43be28
jmp 0x43bee5
cmp eax, 1
jl 0x43bee5
cmp esi, dword [edi + 0x68]
jae 0x43e24a
movzx ecx, byte [esi]
inc esi
cmp edx, ecx
je case.0x43f345.14
mov ecx, dword [esp + 0x14]
inc ecx
cmp ecx, eax
mov dword [esp + 0x14], ecx
jle 0x43bec3
cmp eax, ebx
je 0x43970b
cmp dword [esp + 0x2c], 0
jne 0x43ec96
cmp dword [esp + 0x30], 0
mov dword [esp + 0x2c], esi
je 0x43c071
cmp eax, ebx
mov dword [esp + 0x14], eax
jge 0x43bfca
mov eax, 1
cmp esi, dword [edi + 0x68]
jae 0x43bfaa
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x43bf8f
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x485a40]
lea ecx, [eax + eax*2]
mov dword [esp + 0x18], eax
mov eax, dword [eax*4 + 0x485a28]
and eax, edx
add ecx, ecx
shl eax, cl
mov dword [esp + 0x20], 1
mov edx, eax
mov eax, dword [esp + 0x18]
cmp eax, 1
mov dword [esp + 0x1c], edx
jl 0x43bf8e
lea ebx, [ebx]
mov edx, dword [esp + 0x20]
movzx eax, byte [edx + esi]
and eax, 0x3f
sub ecx, 6
shl eax, cl
inc edx
mov dword [esp + 0x20], edx
or dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
cmp edx, eax
jle 0x43bf69
mov edx, dword [esp + 0x1c]
inc eax
cmp dword [esp + 0x24], edx
je 0x43bfca
add esi, eax
mov eax, dword [esp + 0x14]
inc eax
cmp eax, ebx
mov dword [esp + 0x14], eax
jl 0x43bf13
jmp 0x43bfca
mov eax, dword [edi + 0x78]
test eax, eax
je 0x43bfca
cmp esi, dword [esp + 0x144]
jbe 0x43bfca
cmp eax, 1
mov dword [edi + 0x58], 1
jg 0x43e272
cmp dword [esp + 0x28], 0
jne 0x43970b
mov ebx, dword [esp + 0x15c]
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x148]
inc ebx
push ebx
push 0
push eax
mov eax, dword [esp + 0x150]
push ecx
push edi
push edx
push eax
push ebp
push esi
call fcn.00439699
add esp, 0x24
test eax, eax
jne 0x43f49d
mov ecx, esi
dec esi
cmp ecx, dword [esp + 0x2c]
je 0x43c103
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
jne 0x43c034
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x43c02a
mov ecx, dword [esp + 0x154]
mov edx, dword [esp + 0x150]
mov eax, dword [esp + 0x148]
push ebx
push 0
push ecx
mov ecx, dword [esp + 0x150]
push edx
push edi
push eax
push ecx
push ebp
push esi
call fcn.00439699
add esp, 0x24
test eax, eax
je 0x43c013
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x128
ret
cmp eax, ebx
jge 0x43c0ad
mov ecx, dword [edi + 0x68]
cmp esi, ecx
jae 0x43c08d
movzx edx, byte [esi]
cmp dword [esp + 0x24], edx
je 0x43c0ad
inc eax
inc esi
cmp eax, ebx
jl 0x43c078
jmp 0x43c0ad
mov eax, dword [edi + 0x78]
test eax, eax
je 0x43c0ad
cmp esi, dword [esp + 0x144]
jbe 0x43c0ad
cmp eax, 1
mov dword [edi + 0x58], 1
jg 0x43e272
cmp dword [esp + 0x28], 0
jne 0x43970b
cmp esi, dword [esp + 0x2c]
jb 0x43c103
mov ebx, dword [esp + 0x15c]
inc ebx
mov edx, dword [esp + 0x154]
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x148]
push ebx
push 0
push edx
mov edx, dword [esp + 0x150]
push eax
push edi
push ecx
push edx
push ebp
push esi
call fcn.00439699
add esp, 0x24
test eax, eax
jne 0x43f49d
dec esi
cmp esi, dword [esp + 0x2c]
jae 0x43c0c6
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x128
ret
movzx ebx, byte [ebp + 1]
movzx eax, byte [ebp + 2]
shl ebx, 8
or ebx, eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x2c], 1
add ebp, 3
jmp 0x43c1ce
movzx eax, byte [ebp + 1]
movzx edx, byte [ebp + 2]
shl eax, 8
or eax, edx
mov dword [esp + 0x1c], eax
xor eax, eax
xor ebx, ebx
cmp cl, 0x40
sete al
add ebp, 3
mov dword [esp + 0x2c], eax
jmp 0x43c1ce
xor ebx, ebx
mov dword [esp + 0x28], 1
inc ebp
jmp 0x43c1c6
mov ebx, 1
mov dword [esp + 0x28], ebx
add ebp, ebx
jmp 0x43c1c6
mov eax, 1
xor ebx, ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], eax
add ebp, eax
jmp 0x43c1ce
movzx eax, byte [ebp + 1]
movzx ecx, byte [ebp + 2]
shl eax, 8
or eax, ecx
xor ebx, ebx
mov dword [esp + 0x28], 1
mov dword [esp + 0x1c], eax
add ebp, 3
jmp 0x43c1ce
movsx ebx, byte [eax + 0x48649f]
add eax, 0xffffffc7
movzx ecx, al
movsx eax, byte [eax + 0x4864e0]
and ecx, 1
inc ebp
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x43c1ce
mov dword [esp + 0x1c], 0x7fffffff
movzx eax, byte [ebp]
mov edx, 1
add ebp, edx
mov dword [esp + 0x20], eax
test ebx, ebx
jle 0x43ccc1
add eax, 0xfffffffa
cmp dword [esp + 0x30], 0
je 0x43c95f
cmp eax, 0xf
ja case.0x43f32b.15
jmp dword [eax*4 + 0x43f66d]
cmp ebx, edx
mov dword [esp + 0x14], edx
jl 0x43ccc1
mov eax, dword [edi + 0x68]
cmp esi, eax
jae 0x43ee4f
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x43c242
mov edx, dword [esp + 0x30]
push edx
lea edx, [edi + 0x1c]
push edx
push eax
push ecx
push esi
call fcn.0043200a
add esp, 0x14
test eax, eax
jne case.0x43f345.14
lea edx, [eax + 1]
jmp 0x43c266
mov ecx, dword [edi + 0x1c]
sub eax, ecx
cmp esi, eax
ja 0x43c266
mov al, byte [esi]
cmp al, byte [edi + 0x2c]
jne 0x43c266
cmp ecx, edx
je case.0x43f345.14
mov cl, byte [esi + 1]
cmp cl, byte [edi + 0x2d]
je case.0x43f345.14
add esi, edx
cmp esi, dword [edi + 0x68]
jae 0x43c27c
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x43c27c
add esi, edx
cmp esi, dword [edi + 0x68]
jb 0x43c26d
mov eax, dword [esp + 0x14]
add eax, edx
cmp eax, ebx
mov dword [esp + 0x14], eax
jle 0x43c20f
jmp 0x43ccc1
cmp ebx, edx
mov eax, edx
jl 0x43ccc1
mov ecx, dword [edi + 0x68]
cmp esi, ecx
jae 0x43ee4f
add esi, edx
cmp esi, ecx
jae 0x43c2bf
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
jne 0x43c2ba
inc esi
cmp esi, dword [edi + 0x68]
jb 0x43c2aa
mov edx, 1
add eax, edx
cmp eax, ebx
jle 0x43c29c
jmp 0x43ccc1
mov eax, dword [edi + 0x68]
sub eax, ebx
cmp esi, eax
ja case.0x43f345.14
add esi, ebx
jmp 0x43ccc1
cmp ebx, edx
mov dword [esp + 0x14], edx
jl 0x43ccc1
jmp 0x43c2fe
mov edx, 1
cmp esi, dword [edi + 0x68]
jae 0x43ee4f
movzx eax, byte [esi]
add esi, edx
cmp eax, 0xc0
jb 0x43c360
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x485a40]
lea ecx, [edx + edx*2]
add ecx, ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [edx*4 + 0x485a28]
and ecx, eax
mov eax, ecx
mov ecx, dword [esp + 0x24]
shl eax, cl
test edx, edx
jle 0x43c360
mov ecx, dword [esp + 0x24]
dec edx
mov dword [esp + 0x34], edx
movzx edx, byte [esi]
sub ecx, 6
and edx, 0x3f
shl edx, cl
inc esi
mov dword [esp + 0x24], ecx
or eax, edx
mov edx, dword [esp + 0x34]
test edx, edx
jg 0x43c33d
cmp eax, 0xd
ja 0x43c38a
je 0x43c37d
cmp eax, 0xa
je 0x43c3b1
jbe case.0x43f345.14
cmp eax, 0xc
ja case.0x43f345.14
jmp 0x43c3a7
cmp esi, dword [edi + 0x68]
jae 0x43c3b1
cmp byte [esi], 0xa
jne 0x43c3b1
inc esi
jmp 0x43c3b1
cmp eax, 0x85
je 0x43c3a7
cmp eax, 0x2027
jbe case.0x43f345.14
cmp eax, 0x2029
ja case.0x43f345.14
cmp dword [edi + 0x5c], 0
jne case.0x43f345.14
mov eax, dword [esp + 0x14]
inc eax
cmp eax, ebx
mov dword [esp + 0x14], eax
jle 0x43c2f9
jmp 0x43ccc1
cmp ebx, edx
mov dword [esp + 0x14], edx
jl 0x43ccc1
jmp 0x43c3de
mov edx, 1
cmp esi, dword [edi + 0x68]
jae 0x43ee4f
movzx eax, byte [esi]
add esi, edx
cmp eax, 0xc0
jb 0x43c440
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x485a40]
lea ecx, [edx + edx*2]
add ecx, ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [edx*4 + 0x485a28]
and ecx, eax
mov eax, ecx
mov ecx, dword [esp + 0x24]
shl eax, cl
test edx, edx
jle 0x43c440
mov ecx, dword [esp + 0x24]
dec edx
mov dword [esp + 0x34], edx
movzx edx, byte [esi]
sub ecx, 6
and edx, 0x3f
shl edx, cl
inc esi
mov dword [esp + 0x24], ecx
or eax, edx
mov edx, dword [esp + 0x34]
test edx, edx
jg 0x43c41d
cmp eax, 0x180e
ja 0x43c47b
je case.0x43f345.14
cmp eax, 0xa0
ja 0x43c46e
je case.0x43f345.14
cmp eax, 9
je case.0x43f345.14
cmp eax, 0x20
je case.0x43f345.14
jmp 0x43c4b2
cmp eax, 0x1680
je case.0x43f345.14
jmp 0x43c4b2
cmp eax, 0x205f
ja 0x43c4a7
je case.0x43f345.14
cmp eax, 0x2000
jb 0x43c4b2
cmp eax, 0x200a
jbe case.0x43f345.14
cmp eax, 0x202f
je case.0x43f345.14
jmp 0x43c4b2
cmp eax, 0x3000
je case.0x43f345.14
mov eax, dword [esp + 0x14]
inc eax
cmp eax, ebx
mov dword [esp + 0x14], eax
jle 0x43c3d9
jmp 0x43ccc1
cmp ebx, edx
mov dword [esp + 0x14], edx
jl 0x43ccc1
jmp 0x43c4de
mov edx, 1
cmp esi, dword [edi + 0x68]
jae 0x43ee4f
movzx eax, byte [esi]
add esi, edx
cmp eax, 0xc0
jb 0x43c540
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x485a40]
lea ecx, [edx + edx*2]
add ecx, ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [edx*4 + 0x485a28]
and ecx, eax
mov eax, ecx
mov ecx, dword [esp + 0x24]
shl eax, cl
test edx, edx
jle 0x43c540
mov ecx, dword [esp + 0x24]
dec edx
mov dword [esp + 0x34], edx
movzx edx, byte [esi]
sub ecx, 6
and edx, 0x3f
shl edx, cl
inc esi
mov dword [esp + 0x24], ecx
or eax, edx
mov edx, dword [esp + 0x34]
test edx, edx
jg 0x43c51d
cmp eax, 0x180e
ja 0x43c56f
je 0x43c5a2
cmp eax, 0xa0
ja 0x43c562
je 0x43c5a2
cmp eax, 9
je 0x43c5a2
cmp eax, 0x20
jne case.0x43f345.14
jmp 0x43c5a2
cmp eax, 0x1680
jne case.0x43f345.14
jmp 0x43c5a2
cmp eax, 0x205f
ja 0x43c597
je 0x43c5a2
cmp eax, 0x2000
jb case.0x43f345.14
cmp eax, 0x200a
jbe 0x43c5a2
cmp eax, 0x202f
jne case.0x43f345.14
jmp 0x43c5a2
cmp eax, 0x3000
jne case.0x43f345.14
mov eax, dword [esp + 0x14]
inc eax
cmp eax, ebx
mov dword [esp + 0x14], eax
jle 0x43c4d9
jmp 0x43ccc1
cmp ebx, edx
mov dword [esp + 0x14], edx
jl 0x43ccc1
jmp 0x43c5ce
mov edx, 1
cmp esi, dword [edi + 0x68]
jae 0x43ee4f
movzx eax, byte [esi]
add esi, edx
cmp eax, 0xc0
jb 0x43c630
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x485a40]
lea ecx, [edx + edx*2]
add ecx, ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [edx*4 + 0x485a28]
and ecx, eax
mov eax, ecx
mov ecx, dword [esp + 0x24]
shl eax, cl
test edx, edx
jle 0x43c630
mov ecx, dword [esp + 0x24]
dec edx
mov dword [esp + 0x34], edx
movzx edx, byte [esi]
sub ecx, 6
and edx, 0x3f
shl edx, cl
inc esi
mov dword [esp + 0x24], ecx
or eax, edx
mov edx, dword [esp + 0x34]
test edx, edx
jg 0x43c60d
cmp eax, 0x85
ja 0x43c64d
je case.0x43f345.14
cmp eax, 0xa
jb 0x43c65f
cmp eax, 0xd
jbe case.0x43f345.14
jmp 0x43c65f
cmp eax, 0x2028
jb 0x43c65f
cmp eax, 0x2029
jbe case.0x43f345.14
mov eax, dword [esp + 0x14]
inc eax
cmp eax, ebx
mov dword [esp + 0x14], eax
jle 0x43c5c9
jmp 0x43ccc1
cmp ebx, edx
mov dword [esp + 0x14], edx
jl 0x43ccc1
jmp 0x43c68e
mov edx, 1
cmp esi, dword [edi + 0x68]
jae 0x43ee4f
movzx eax, byte [esi]
add esi, edx
cmp eax, 0xc0
jb 0x43c6f0
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x485a40]
lea ecx, [edx + edx*2]
add ecx, ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [edx*4 + 0x485a28]
and ecx, eax
mov eax, ecx
mov ecx, dword [esp + 0x24]
shl eax, cl
test edx, edx
jle 0x43c6f0
mov ecx, dword [esp + 0x24]
dec edx
mov dword [esp + 0x34], edx
movzx edx, byte [esi]
sub ecx, 6
and edx, 0x3f
shl edx, cl
inc esi
mov dword [esp + 0x24], ecx
or eax, edx
mov edx, dword [esp + 0x34]
test edx, edx
jg 0x43c6cd
cmp eax, 0x85
ja 0x43c70d
je 0x43c723
cmp eax, 0xa
jb case.0x43f345.14
cmp eax, 0xd
ja case.0x43f345.14
jmp 0x43c723
cmp eax, 0x2028
jb case.0x43f345.14
cmp eax, 0x2029
ja case.0x43f345.14
mov eax, dword [esp + 0x14]
inc eax
cmp eax, ebx
mov dword [esp + 0x14], eax
jle 0x43c689
jmp 0x43ccc1
cmp ebx, edx
mov dword [esp + 0x14], edx
jl 0x43ccc1
cmp esi, dword [edi + 0x68]
jae 0x43ee4f
movzx ecx, byte [esi]
add esi, edx
cmp ecx, 0xc0
jb 0x43c7b1
mov eax, ecx
and eax, 0x3f
movzx eax, byte [eax + 0x485a40]
lea edx, [eax + eax*2]
add edx, edx
mov dword [esp + 0x18], edx
mov edx, dword [eax*4 + 0x485a28]
and edx, ecx
mov ecx, dword [esp + 0x18]
shl edx, cl
mov ecx, edx
mov dword [esp + 0x24], ecx
test eax, eax
jle 0x43c7ac
movzx edx, byte [esi]
mov ecx, dword [esp + 0x18]
sub ecx, 6
and edx, 0x3f
shl edx, cl
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x24]
dec eax
or ecx, edx
inc esi
mov dword [esp + 0x24], ecx
test eax, eax
jg 0x43c789
mov edx, 1
cmp ecx, 0x80
jae 0x43c7c6
mov eax, dword [edi + 0x34]
test byte [ecx + eax], 4
jne case.0x43f345.14
mov eax, dword [esp + 0x14]
add eax, edx
cmp eax, ebx
mov dword [esp + 0x14], eax
jle 0x43c745
jmp 0x43ccc1
cmp ebx, edx
mov ecx, edx
jl 0x43ccc1
jmp 0x43c7ee
mov edx, 1
cmp esi, dword [edi + 0x68]
jae 0x43ee4f
mov al, byte [esi]
cmp al, 0x80
jae case.0x43f345.14
movzx edx, al
mov eax, dword [edi + 0x34]
mov dl, byte [edx + eax]
and dl, 4
inc esi
test dl, dl
je case.0x43f345.14
inc ecx
cmp ecx, ebx
jle 0x43c7e9
jmp 0x43ccc1
cmp ebx, edx
mov ecx, edx
jl 0x43ccc1
mov eax, dword [edi + 0x68]
cmp esi, eax
jae 0x43ee4f
mov al, byte [esi]
cmp al, 0x80
jae 0x43c850
mov edx, dword [edi + 0x34]
movzx eax, al
test byte [eax + edx], 1
jne case.0x43f345.14
mov edx, 1
mov eax, dword [edi + 0x68]
add esi, edx
cmp esi, eax
jae 0x43c868
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
je 0x43c84b
mov edx, 1
add ecx, edx
cmp ecx, ebx
jle 0x43c82d
jmp 0x43ccc1
cmp ebx, edx
mov ecx, edx
jl 0x43ccc1
jmp 0x43c88e
mov edx, 1
cmp esi, dword [edi + 0x68]
jae 0x43ee4f
mov al, byte [esi]
cmp al, 0x80
jae case.0x43f345.14
mov edx, dword [edi + 0x34]
movzx eax, al
mov al, byte [eax + edx]
and al, 1
inc esi
test al, al
je case.0x43f345.14
inc ecx
cmp ecx, ebx
jle 0x43c889
jmp 0x43ccc1
cmp ebx, edx
mov ecx, edx
jl 0x43ccc1
mov eax, dword [edi + 0x68]
cmp esi, eax
jae case.0x43f345.14
mov al, byte [esi]
cmp al, 0x80
jae 0x43c8ef
movzx edx, al
mov eax, dword [edi + 0x34]
test byte [edx + eax], 0x10
jne case.0x43f345.14
mov edx, 1
mov eax, dword [edi + 0x68]
add esi, edx
cmp esi, eax
jae 0x43c907
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
je 0x43c8ea
mov edx, 1
add ecx, edx
cmp ecx, ebx
jle 0x43c8cc
jmp 0x43ccc1
cmp ebx, edx
mov ecx, edx
jl 0x43ccc1
jmp 0x43c92e
mov edx, 1
cmp esi, dword [edi + 0x68]
jae 0x43ee4f
mov al, byte [esi]
cmp al, 0x80
jae case.0x43f345.14
mov edx, dword [edi + 0x34]
movzx eax, al
mov al, byte [eax + edx]
and al, 0x10
inc esi
test al, al
je case.0x43f345.14
inc ecx
cmp ecx, ebx
jle 0x43c929
jmp 0x43ccc1
cmp eax, 0xf
ja case.0x43f32b.15
jmp dword [eax*4 + 0x43f6ad]
cmp ebx, edx
mov dword [esp + 0x14], edx
jl 0x43ccc1
mov eax, dword [edi + 0x68]
cmp esi, eax
jae 0x43ee4f
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x43c9ab
push 0
lea edx, [edi + 0x1c]
push edx
push eax
push ecx
push esi
call fcn.0043200a
add esp, 0x14
test eax, eax
jne case.0x43f345.14
lea edx, [eax + 1]
jmp 0x43c9cf
mov ecx, dword [edi + 0x1c]
sub eax, ecx
cmp esi, eax
ja 0x43c9cf
mov al, byte [esi]
cmp al, byte [edi + 0x2c]
jne 0x43c9cf
cmp ecx, edx
je case.0x43f345.14
mov cl, byte [esi + 1]
cmp cl, byte [edi + 0x2d]
je case.0x43f345.14
mov eax, dword [esp + 0x14]
add eax, edx
add esi, edx
cmp eax, ebx
mov dword [esp + 0x14], eax
jle 0x43c97b
jmp 0x43ccc1
mov eax, dword [edi + 0x68]
sub eax, ebx
cmp esi, eax
ja 0x43ee4f
add esi, ebx
jmp 0x43ccc1
mov ecx, dword [edi + 0x68]
sub ecx, ebx
cmp esi, ecx
ja 0x43ee4f
add esi, ebx
jmp 0x43ccc1
cmp ebx, edx
mov ecx, edx
jl 0x43ccc1
mov edx, dword [edi + 0x68]
cmp esi, edx
jae 0x43e24a
movzx eax, byte [esi]
sub eax, 0xa
inc esi
cmp eax, 0x7b
ja case.0x43f345.14
movzx eax, byte [eax + 0x43f6fd]
jmp dword [eax*4 + 0x43f6ed]
cmp esi, edx
jae case.0x43ca38.10
cmp byte [esi], 0xa
jne case.0x43ca38.10
inc esi
jmp case.0x43ca38.10
cmp dword [edi + 0x5c], 0
jne case.0x43f345.14
inc ecx
cmp ecx, ebx
jle 0x43ca19
jmp 0x43ccc1
cmp ebx, edx
mov ecx, edx
jl 0x43ccc1
mov edx, dword [edi + 0x68]
cmp esi, edx
jae 0x43e24a
movzx eax, byte [esi]
inc esi
cmp eax, 9
je case.0x43f345.14
cmp eax, 0x20
je case.0x43f345.14
cmp eax, 0xa0
je case.0x43f345.14
inc ecx
cmp ecx, ebx
jle 0x43ca6c
jmp 0x43ccc1
cmp ebx, edx
mov ecx, edx
jl 0x43ccc1
mov edx, dword [edi + 0x68]
cmp esi, edx
jae 0x43e24a
movzx eax, byte [esi]
inc esi
cmp eax, 9
je 0x43cacd
cmp eax, 0x20
je 0x43cacd
cmp eax, 0xa0
jne case.0x43f345.14
inc ecx
cmp ecx, ebx
jle 0x43caac
jmp 0x43ccc1
cmp ebx, edx
mov ecx, edx
jl 0x43ccc1
mov edx, dword [edi + 0x68]
jmp 0x43cae9
cmp esi, edx
jae 0x43e24a
movzx eax, byte [esi]
inc esi
cmp eax, 0xa
jl 0x43cb0e
cmp eax, 0xd
jle case.0x43f345.14
cmp eax, 0x85
je case.0x43f345.14
inc ecx
cmp ecx, ebx
jle 0x43cae9
jmp 0x43ccc1
cmp ebx, edx
mov ecx, edx
jl 0x43ccc1
mov edx, dword [edi + 0x68]
lea esp, [esp]
cmp esi, edx
jae 0x43e24a
movzx eax, byte [esi]
inc esi
cmp eax, 0xa
jl case.0x43f345.14
cmp eax, 0xd
jle 0x43cb4e
cmp eax, 0x85
jne case.0x43f345.14
inc ecx
cmp ecx, ebx
jle 0x43cb29
jmp 0x43ccc1
cmp ebx, edx
mov eax, edx
jl 0x43ccc1
jmp 0x43cb6e
mov edx, 1
cmp esi, dword [edi + 0x68]
jae 0x43ee4f
movzx ecx, byte [esi]
mov edx, dword [edi + 0x34]
mov cl, byte [ecx + edx]
and cl, 4
inc esi
test cl, cl
jne case.0x43f345.14
inc eax
cmp eax, ebx
jle 0x43cb69
jmp 0x43ccc1
cmp ebx, edx
mov eax, edx
jl 0x43ccc1
jmp 0x43cbae
mov edx, 1
cmp esi, dword [edi + 0x68]
jae 0x43ee4f
movzx edx, byte [esi]
mov ecx, dword [edi + 0x34]
mov dl, byte [edx + ecx]
and dl, 4
inc esi
test dl, dl
je case.0x43f345.14
inc eax
cmp eax, ebx
jle 0x43cba9
jmp 0x43ccc1
cmp ebx, edx
mov eax, edx
jl 0x43ccc1
jmp 0x43cbee
mov edx, 1
cmp esi, dword [edi + 0x68]
jae 0x43ee4f
movzx ecx, byte [esi]
mov edx, dword [edi + 0x34]
mov cl, byte [ecx + edx]
and cl, 1
inc esi
test cl, cl
jne case.0x43f345.14
inc eax
cmp eax, ebx
jle 0x43cbe9
jmp 0x43ccc1
cmp ebx, edx
mov eax, edx
jl 0x43ccc1
jmp 0x43cc2e
mov edx, 1
cmp esi, dword [edi + 0x68]
jae 0x43ee4f
movzx edx, byte [esi]
mov ecx, dword [edi + 0x34]
mov dl, byte [edx + ecx]
and dl, 1
inc esi
test dl, dl
je case.0x43f345.14
inc eax
cmp eax, ebx
jle 0x43cc29
jmp 0x43ccc1
cmp ebx, edx
mov eax, edx
jl 0x43ccc1
jmp 0x43cc60
mov edx, 1
cmp esi, dword [edi + 0x68]
jae 0x43ee4f
movzx ecx, byte [esi]
mov edx, dword [edi + 0x34]
mov cl, byte [ecx + edx]
and cl, 0x10
inc esi
test cl, cl
jne case.0x43f345.14
inc eax
cmp eax, ebx
jle 0x43cc5b
jmp 0x43ccc1
cmp ebx, edx
mov eax, edx
jl 0x43ccc1
jmp 0x43cc9e
mov edx, 1
cmp esi, dword [edi + 0x68]
jae 0x43ee4f
movzx edx, byte [esi]
mov ecx, dword [edi + 0x34]
mov dl, byte [edx + ecx]
and dl, 0x10
inc esi
test dl, dl
je case.0x43f345.14
inc eax
cmp eax, ebx
jle 0x43cc99
cmp ebx, dword [esp + 0x1c]
je 0x43970b
cmp dword [esp + 0x2c], 0
jne 0x43ee81
mov eax, dword [esp + 0x20]
add eax, 0xfffffffa
cmp dword [esp + 0x30], 0
mov dword [esp + 0x2c], esi
je 0x43d605
cmp eax, 0xf
ja case.0x43f32b.15
jmp dword [eax*4 + 0x43f779]
mov edx, dword [esp + 0x1c]
cmp edx, 0x7fffffff
jge 0x43cd91
cmp ebx, edx
jge 0x43d55e
jmp 0x43cd19
mov eax, dword [edi + 0x68]
cmp esi, eax
jae 0x43ce66
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x43cd4d
mov edx, dword [esp + 0x30]
push edx
lea edx, [edi + 0x1c]
push edx
push eax
push ecx
push esi
call fcn.0043200a
add esp, 0x14
test eax, eax
jne 0x43d55e
mov edx, dword [esp + 0x1c]
jmp 0x43cd72
mov ecx, dword [edi + 0x1c]
sub eax, ecx
cmp esi, eax
ja 0x43cd72
mov al, byte [esi]
cmp al, byte [edi + 0x2c]
jne 0x43cd72
cmp ecx, 1
je 0x43d55e
mov cl, byte [esi + 1]
cmp cl, byte [edi + 0x2d]
je 0x43d55e
inc esi
cmp esi, dword [edi + 0x68]
jae 0x43cd87
nop
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x43cd87
inc esi
cmp esi, dword [edi + 0x68]
jb 0x43cd79
inc ebx
cmp ebx, edx
jl 0x43cd19
jmp 0x43d55e
cmp ebx, edx
jge 0x43d55e
mov eax, dword [edi + 0x68]
cmp esi, eax
jae 0x43ce66
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x43cdcd
mov edx, dword [esp + 0x30]
push edx
lea edx, [edi + 0x1c]
push edx
push eax
push ecx
push esi
call fcn.0043200a
add esp, 0x14
test eax, eax
jne 0x43d55e
mov edx, dword [esp + 0x1c]
jmp 0x43cdf2
mov ecx, dword [edi + 0x1c]
sub eax, ecx
cmp esi, eax
ja 0x43cdf2
mov al, byte [esi]
cmp al, byte [edi + 0x2c]
jne 0x43cdf2
cmp ecx, 1
je 0x43d55e
mov cl, byte [esi + 1]
cmp cl, byte [edi + 0x2d]
je 0x43d55e
inc esi
cmp esi, dword [edi + 0x68]
jae 0x43ce07
nop
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x43ce07
inc esi
cmp esi, dword [edi + 0x68]
ja 0x43ce6d
jb 0x43cdf9
inc ebx
cmp ebx, edx
jl 0x43cd99
jmp 0x43d55e
mov ecx, dword [esp + 0x1c]
cmp ecx, 0x7fffffff
jge 0x43ce4b
cmp ebx, ecx
jge 0x43d55e
mov eax, dword [edi + 0x68]
cmp esi, eax
jae 0x43ce66
inc esi
cmp esi, eax
jae 0x43ce41
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
jne 0x43ce41
inc esi
cmp esi, dword [edi + 0x68]
jb 0x43ce31
inc ebx
cmp ebx, ecx
jl 0x43ce28
jmp 0x43d55e
mov esi, dword [edi + 0x68]
jmp 0x43d55e
mov ecx, dword [edi + 0x68]
mov eax, dword [esp + 0x1c]
mov edx, ecx
sub eax, ebx
sub edx, esi
cmp eax, edx
jbe 0x43ce93
mov esi, ecx
mov eax, dword [edi + 0x78]
test eax, eax
je 0x43d55e
cmp esi, dword [esp + 0x144]
jbe 0x43d55e
cmp eax, 1
mov dword [edi + 0x58], 1
invalid
invalid
invalid