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

Disassembly:
sub esp, 0x3e4
mov eax, dword [0x100682c0]
push ebx
push ebp
mov ebp, dword [esp + 0x3f0]
mov dword [esp + 0x3e8], eax
mov eax, dword [ebp + 0x21c]
push esi
and dword [eax + 0x328], 0xfffffffc
mov eax, dword [ebp + 0x21c]
and dword [eax + 0x328], 0xffffffe7
mov eax, dword [ebp + 0x21c]
and dword [eax + 0x328], 0xfffffffb
mov ecx, dword [esp + 0x400]
push edi
xor edi, edi
cmp ecx, 7
mov byte [esp + 0x23], 0
mov dword [esp + 0x54], edi
mov dword [0x1006ab70], 0xf42400
mov dword [0x1006ab6c], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x30], edi
mov dword [0x1006ab40], edi
mov dword [esp + 0x3c], edi
mov byte [esp + 0x17], 0
mov dword [esp + 0x78], edi
jne 0x1003ad8c
mov ecx, 3
mov dword [esp + 0x404], ecx
mov dword [esp + 0x3c], 1
jmp 0x1003ad91
cmp ecx, 2
je 0x1003ad98
mov byte [0x1006ab58], 0
cmp ecx, 4
mov esi, dword [esp + 0x40c]
jne 0x1003ae9f
mov bl, byte [0x1006ab48]
cmp bl, 2
mov byte [esp + 0x11], 0
jne 0x1003adce
mov eax, esi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003adc0
mov byte [esp + 0x11], 0x60
jmp 0x1003ade4
cmp bl, 3
jne 0x1003adea
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003add8
mov byte [esp + 0x11], 0x40
sub eax, edx
mov dword [esp + 0x18], eax
cmp bl, 1
mov al, byte [esp + 0x408]
mov edi, dword [0x1006ab4c]
mov dword [esp + 0x28], 3
mov byte [esp + 0x13], al
mov dword [esp + 0x40], edi
jb 0x1003ae14
mov dword [esp + 0x28], 4
cmp bl, 4
jne 0x1003ae80
mov dword [esp + 0x28], 8
mov ebx, dword [esp + 0x48]
mov al, byte [esp + 0x400]
mov cl, al
and cl, 0xc0
and al, 0xc
cmp edi, 0xffff
mov byte [esp + 0x12], cl
mov byte [esp + 0x10], al
mov dword [esp + 0x4c], 0
jle 0x1003f0e3
cmp edi, 0x989680
jge 0x1003f0e3
cmp edi, 0x400000
jl 0x1003ef98
cmp edi, 0x40a410
jg 0x1003ef98
mov dword [esp + 0x4c], 0x40
jmp 0x1003f0e3
cmp bl, 5
jne 0x1003ae21
mov ecx, dword [ebp + 0x21c]
push 0xffffffffffffffff
push esi
push ecx
call fcn.1005881b
mov edi, eax
add esp, 0xc
mov dword [esp + 0x40], edi
jmp 0x1003ae21
cmp ecx, 1
mov edx, dword [ebp + 0x34]
mov eax, dword [esp + 0x3fc]
movzx dx, byte [edx + eax]
mov word [esp + 0x28], dx
jne 0x1003affe
mov eax, dword [ebp + 0x30]
mov ebx, dword [esp + 0x3fc]
mov ecx, dword [eax + ebx*4]
lea edx, [esp + 0x40]
push edx
push ebp
mov dword [esp + 0x48], ecx
call fcn.1003a920
add esp, 8
cmp word [esp + 0x28], 5
je 0x1003af00
mov eax, dword [ebp + 0x38]
movzx eax, word [eax + ebx*2]
mov edx, dword [ebp + 4]
lea ecx, [eax + eax*2]
mov eax, dword [edx + ecx*4 + 8]
push eax
push 0xffffffffffffffff
push esi
call fcn.100022a0
add esp, 0xc
mov edi, dword [esp + 0x40]
cmp edi, 0x989680
je 0x1003d9af
jg 0x1003d9af
cmp edi, 0xfbf4
jl 0x1003af2a
cmp edi, 0x10000
jle 0x1003d9af
mov eax, esi
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003af30
mov ecx, dword [esp + 0x28]
sub eax, edx
cmp cx, 3
mov dword [esp + 0x18], eax
je 0x1003af4d
cmp cx, 4
jne 0x1003af6d
mov edx, dword [ebp + 0x38]
movzx eax, word [edx + ebx*2]
mov edx, dword [ebp + 4]
lea eax, [eax + eax*2]
movzx eax, word [edx + eax*4 + 4]
mov edx, dword [ebp + 0x14]
test byte [eax + edx + 2], 2
jne 0x1003d9af
cmp cx, 3
jne 0x1003af9e
mov eax, dword [ebp + 0x38]
movzx eax, word [eax + ebx*2]
mov edx, dword [ebp + 4]
lea ecx, [eax + eax*2]
movzx eax, word [edx + ecx*4 + 4]
mov ecx, dword [ebp + 0x14]
add eax, ecx
test byte [eax + 2], 1
jne 0x1003d9af
test byte [eax + 3], 3
jne 0x1003d9af
mov edx, dword [ebp + 0x38]
movzx eax, word [edx + ebx*2]
mov ecx, dword [ebp + 4]
lea eax, [eax + eax*2]
movzx edx, word [ecx + eax*4 + 4]
mov eax, dword [ebp + 0x14]
lea ecx, [edx + eax]
mov al, byte [ecx + 3]
mov cl, byte [ecx + 2]
mov dl, al
and dl, 0xc0
and al, 0xc
and cl, 0x60
cmp edi, 0x989681
mov byte [esp + 0x13], dl
mov byte [esp + 0x14], al
mov byte [esp + 0x11], cl
jne 0x1003afe4
mov byte [esp + 0x11], 0x40
jmp 0x1003ae21
cmp edi, 0x989682
mov ebx, dword [esp + 0x48]
jne 0x1003ae25
mov byte [esp + 0x11], 0x60
jmp 0x1003ae25
cmp ecx, 2
je 0x1003bfaf
cmp ecx, 6
je 0x1003bfaf
cmp ecx, 3
je 0x1003b01e
cmp ecx, 5
jne case.0x1003f261.33
mov edx, dword [esp + 0x418]
mov eax, esi
mov byte [edx], 0
lea ebx, [eax + 1]
lea ecx, [ecx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x1003b030
sub eax, ebx
cmp ax, di
movsx ebx, ax
movzx dx, byte [ebx + esi - 1]
mov dword [esp + 0x18], eax
mov word [esp + 0x44], dx
jle 0x1003b092
movzx eax, ax
mov dword [esp + 0x24], edi
mov edi, esi
mov dword [esp + 0x60], eax
lea ecx, [ecx]
cmp byte [edi], 0x2d
jne 0x1003b082
mov eax, dword [esp + 0x24]
mov ecx, ebx
sub ecx, eax
push ecx
lea edx, [edi + 1]
push edx
push edi
call fcn.1005881b
mov ecx, dword [esp + 0x410]
add esp, 0xc
inc dword [esp + 0x24]
mov eax, dword [esp + 0x60]
inc edi
dec eax
mov dword [esp + 0x60], eax
jne 0x1003b060
mov al, byte [ebx + esi - 1]
cmp al, 0x84
jbe 0x1003b0de
movzx eax, al
add eax, 0xffffff20
cmp eax, 0x19
ja case.0x1003b0ae.225
movzx eax, byte [eax + 0x10041698]
jmp dword [eax*4 + 0x10041680]
mov byte [esp + 0x10], 0x7b
jmp case.0x1003b0ae.225
mov byte [esp + 0x10], 0x7c
jmp case.0x1003b0ae.225
mov byte [esp + 0x10], 0x7d
jmp case.0x1003b0ae.225
mov byte [esp + 0x10], 0x7e
jmp case.0x1003b0ae.225
mov byte [esp + 0x10], 0x7f
mov dl, byte [esp + 0x10]
mov byte [ebx + esi - 1], dl
mov edx, dword [ebp + 0x21c]
xor eax, eax
add edx, 0xc
cmp ecx, 5
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], eax
jne 0x1003b118
mov ecx, dword [ebp + 0x21c]
lea eax, [esp + 0x420]
push eax
push 0
push esi
push ecx
call fcn.1002a170
add esp, 0x10
jmp 0x1003b128
mov edx, dword [ebp + 0x21c]
push esi
push edx
call fcn.1005881b
add esp, 8
mov edi, eax
cmp edi, 0xf42400
mov dword [esp + 0x40], edi
je 0x1003b145
mov eax, dword [ebp + 0x21c]
push eax
call fcn.1001e3f0
add esp, 4
mov ecx, dword [ebp + 0x21c]
xor eax, eax
cmp edi, 0xf42400
mov dword [ecx + 0x31c], eax
je 0x1003be27
cmp edi, 0x30000
mov ecx, dword [esp + 0x404]
jle 0x1003b177
cmp ecx, 3
je 0x1003be27
cmp ecx, 5
jne 0x1003b3db
mov edx, dword [ebp + 0x21c]
mov dword [esp + 0x420], 0xf42400
mov al, byte [edx + 0xc]
and al, 0xe0
cmp al, 0x80
mov byte [esp + 0x11], 0
jne 0x1003b1ac
mov dword [esp + 0x28], 4
jmp 0x1003b3a1
cmp al, 0xc0
jne 0x1003b357
cmp word [esp + 0x408], 4
jne 0x1003b399
mov eax, dword [esp + 0x40c]
push eax
lea ecx, [esp + 0xd4]
push 0xffffffffffffffff
push ecx
call fcn.100022a0
mov eax, dword [ebp + 0x21c]
mov byte [esp + ebx + 0xdb], 0x6f
mov bx, word [eax + 0xa]
movsx ecx, bx
mov dword [esp + 0x48], ecx
mov edx, ecx
shr ecx, 2
lea esi, [eax + 0xc]
lea edi, [esp + 0xb4]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 0x31c]
push ecx
lea edx, [esp + 0x34]
push edx
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xe4]
push ecx
push 0
push edx
push ecx
push eax
call fcn.10023c60
add esp, 0x28
test ax, ax
jne 0x1003b2bd
mov eax, dword [ebp + 0x21c]
push 0xffffffffffffffff
lea edx, [esp + 0xd4]
push edx
push eax
call fcn.1005881b
mov esi, eax
add esp, 0xc
cmp esi, 0xf42400
mov dword [esp + 0x24], esi
je 0x1003b281
mov ecx, dword [ebp + 0x21c]
mov dl, byte [ecx + 0xc]
and dl, 0xe0
cmp dl, 0x80
jne 0x1003b281
mov cl, byte [ecx + 0xd]
test cl, 0x10
jne 0x1003b281
and cl, 0xf
cmp cl, 7
je 0x1003b2c1
mov eax, dword [ebp + 0x21c]
mov ecx, dword [esp + 0x3c]
mov edx, ecx
mov word [eax + 0xa], bx
mov edi, dword [ebp + 0x21c]
add edi, 0xc
shr ecx, 2
lea esi, [esp + 0xa8]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x40c]
jmp 0x1003b399
mov esi, dword [esp + 0x24]
mov dword [esp + 0x420], esi
mov ecx, dword [esp + 0x40c]
lea eax, [esp + 0xd0]
push eax
push 0xffffffffffffffff
push ecx
call fcn.100022a0
add esp, 0xc
mov dword [esp + 0x30], 1
mov eax, dword [esp + 0x40c]
cmp byte [eax + 2], 0x60
jne 0x1003b2fb
mov byte [eax + 2], 0
cmp dword [esp + 0x404], 2
jne 0x1003b33c
mov ecx, dword [0x1006ab6c]
test ecx, ecx
jne 0x1003b33c
movzx edx, word [0x1006ab50]
cmp edx, dword [esp + 0x3fc]
jge 0x1003b33c
push eax
mov eax, dword [esp + 0x41c]
push 0xffffffffffffffff
push eax
mov dword [0x1006ab6c], 1
call fcn.100022a0
add esp, 0xc
mov eax, dword [esp + 0x30]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x3e0]
call fcn.10057644
add esp, 0x3e4
ret
push 0
push ebp
call fcn.1003a800
add esp, 8
cmp ax, 1
jne 0x1003b38e
cmp byte [ebx + esi - 1], 0x65
mov byte [esp + 0x11], 0x60
mov dword [esp + 0x28], 4
jne 0x1003b381
mov byte [ebx + esi - 1], 0x61
cmp byte [ebx + esi - 1], 0x61
je case.0x1003f261.33
jmp 0x1003b3a1
cmp ax, 2
jne 0x1003b3a1
mov byte [esp + 0x11], 0x40
mov dword [esp + 0x28], 3
cmp edi, 0xffff
mov dword [esp + 0x400], 0x88
jle 0x1003b3bf
mov dword [esp + 0x400], 0x48
mov cl, byte [esp + 0x400]
mov al, cl
and al, 0xc0
mov byte [esp + 0x13], al
mov al, cl
and al, 0xc
mov byte [esp + 0x14], al
jmp 0x1003ae21
xor ebx, ebx
cmp edi, 0xffff
mov dword [esp + 0x28], ebx
jle 0x1003b3f5
cmp edi, 0x989680
jl 0x1003be4c
mov eax, dword [ebp + 0x21c]
mov dl, byte [eax + 0xc]
and dl, 0xe0
cmp ecx, 3
mov byte [esp + 0x10], dl
jne 0x1003b4b8
mov edi, edi
cmp word [esp + 0x408], 1
jne 0x1003b4b0
cmp dl, 0x80
jne 0x1003b4c8
test byte [eax + 0xd], 0x10
je 0x1003b4c8
movzx eax, byte [eax + 0x11]
and eax, 0xe0
cmp eax, 0x80
mov ebx, 5
je 0x1003b44e
cmp eax, 0xc0
jne 0x1003b456
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x1003b4c8
mov eax, dword [ebp + 0x21c]
mov cl, byte [eax + 0xe]
movzx eax, byte [eax + 0xf]
xor edx, edx
mov dl, cl
and edx, 7
shl edx, 8
add eax, edx
test cl, 8
je 0x1003b476
neg eax
test eax, eax
je 0x1003b4c4
push 0xffffffffffffffff
push esi
add eax, edi
push eax
call fcn.1001e6e0
mov ecx, dword [ebp + 0x21c]
push esi
push ecx
call fcn.1005881b
mov edi, eax
mov eax, dword [ebp + 0x21c]
mov cl, byte [eax + 0xc]
add esp, 8
xor ebx, ebx
and cl, 0xe0
mov byte [esp + 0x10], cl
mov dl, cl
jmp 0x1003b410
mov dword [esp + 0x40], edi
mov dword [esp + 0x28], ebx
cmp dl, 0x80
jne 0x1003b4d0
mov ebx, 5
jmp 0x1003b4cc
mov dl, byte [esp + 0x10]
mov dword [esp + 0x40], edi
mov dword [esp + 0x28], ebx
cmp dl, 0x60
mov byte [esp + 0x16], 0
jne 0x1003b4e1
add ebx, 2
mov dword [esp + 0x28], ebx
cmp dword [esp + 0x3c], 1
jne 0x1003b546
cmp dl, 0x80
jne 0x1003b546
mov eax, dword [ebp + 0x21c]
cmp word [eax + 0xa], 5
jbe 0x1003b546
mov al, byte [eax + 0x11]
and al, 0xe0
cmp al, 0xc0
jne 0x1003b546
mov byte [esp + 0x10], al
mov eax, dword [ebp + 0x21c]
add word [eax + 0xa], 0xfffb
mov eax, dword [ebp + 0x21c]
movzx ecx, word [eax + 0xa]
mov edx, ecx
shr ecx, 2
lea esi, [eax + 0x11]
lea edi, [eax + 0xc]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov dl, byte [esp + 0x10]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x40c]
xor ebx, ebx
mov dword [esp + 0x28], ebx
mov ecx, dword [ebp + 0x21c]
mov al, byte [ecx + 0xc]
and al, 1
dec al
neg al
sbb al, al
inc al
shl al, 1
add al, 5
cmp dl, 0xc0
jne 0x1003b59a
movzx dx, al
cmp word [ecx + 0xa], dx
jbe 0x1003b58b
movzx eax, al
mov dl, byte [eax + ecx + 0xc]
add eax, ecx
and dl, 0xe0
cmp dl, 0x40
jne 0x1003b58b
mov al, byte [eax + 0xd]
and al, 0xf8
cmp al, 0x88
jne 0x1003b58b
mov byte [esp + 0x16], 1
test byte [ecx + 0xf], 0x20
mov dl, byte [esp + 0x10]
je 0x1003b59a
mov byte [esp + 0x16], 1
cmp dword [esp + 0x404], 3
jne 0x1003b60b
mov al, byte [esp + 0x16]
test al, al
jne 0x1003b60b
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x1003b60b
cmp dl, 0xc0
jne 0x1003b5bf
test byte [ecx + 0xc], 2
je 0x1003b60b
mov cl, byte [ecx + 0xd]
and cl, 0xf
cmp cl, 0xb
je 0x1003b60b
mov eax, esi
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003b5d0
push 0
sub eax, edx
lea edx, [esp + 0x54]
push edx
push 0
push 0x1f4
push eax
mov eax, dword [0x1006be98]
mov ecx, dword [eax + 0x21c]
push esi
push ecx
call fcn.10023c60
mov dl, byte [esp + 0x2c]
add esp, 0x1c
test ax, ax
je 0x1003b60b
mov byte [esp + 0x16], 1
mov ecx, dword [ebp + 0x21c]
movzx eax, word [ecx + 0xa]
movsx esi, bx
cmp eax, esi
jle 0x1003bc31
mov al, byte [esp + 0x16]
test al, al
jne 0x1003bc31
mov bl, byte [esi + ecx + 0xc]
lea eax, [esi + ecx]
mov dl, bl
and dl, 0xe0
cmp dl, 0xc0
mov byte [esp + 0x37], bl
jne 0x1003bc2d
and bl, 1
dec bl
neg bl
sbb ebx, ebx
inc ebx
lea edx, [ebx + ebx + 5]
mov bl, byte [eax + 0xe]
and bl, 0x1c
cmp bl, 0x18
mov dword [esp + 0x78], edx
jae 0x1003b78a
lea ebx, [edx + esi]
movzx edx, word [ecx + 0xa]
cmp edx, ebx
jle 0x1003b691
mov edx, dword [esp + 0x78]
mov bl, byte [edx + eax + 0xc]
and bl, 0xe0
cmp bl, 0xc0
jne 0x1003b691
mov bl, byte [edx + eax + 0xe]
and bl, 0x1c
cmp bl, 0x18
jae 0x1003b7b0
mov dl, byte [esp + 0x37]
and dl, 0xe0
cmp dl, 0xc0
jne 0x1003b6aa
mov al, byte [eax + 0xe]
and al, 0x1d
cmp al, 1
je 0x1003bbfa
mov edx, dword [ebp + 0x21c]
mov al, byte [esi + edx + 0xc]
mov bl, al
and al, 1
and bl, 0xc
dec al
neg al
sbb eax, eax
inc eax
lea eax, [eax + eax + 5]
mov dword [esp + 0x44], eax
movsx eax, ax
lea edx, [eax + esi]
movzx eax, word [ecx + 0xa]
cmp eax, edx
jle 0x1003b75f
mov eax, dword [esp + 0x44]
movsx edx, ax
add edx, esi
mov dl, byte [edx + ecx + 0xc]
and dl, 0xe0
cmp dl, 0xc0
jne 0x1003b75f
cmp byte [ecx], 0
jne 0x1003b738
mov cl, byte [esp + 0x37]
and cl, 0xc
cmp cl, 4
jne 0x1003b738
mov ecx, dword [esp + 0x40c]
mov eax, dword [esp + 0x418]
push ecx
mov byte [eax], 0x50
inc eax
push 0xffffffffffffffff
push eax
call fcn.100022a0
mov edx, dword [esp + 0x424]
push 0x1006297c
push 0xffffffffffffffff
push edx
call fcn.10002250
mov eax, dword [esp + 0x5c]
add esp, 0x18
mov ecx, dword [ebp + 0x21c]
movsx edx, ax
add edx, esi
mov dl, byte [edx + ecx + 0xc]
and dl, 0xc
cmp dl, 0xc
jne 0x1003b75f
mov edx, dword [esp + 0x28]
add edx, eax
movsx esi, dx
mov bl, byte [esi + ecx + 0xc]
and bl, 0xc
cmp bl, 8
jne 0x1003b8a2
test byte [esi + ecx + 0xc], 1
jne 0x1003b8b3
mov eax, dword [esp + 0x40c]
mov dword [esp + 0x30], 0
mov byte [eax], 0x50
jmp case.0x1003f261.33
cmp edx, 5
jle 0x1003b7b4
lea ebx, [edx + esi]
movzx esi, word [ecx + 0xa]
cmp esi, ebx
jle 0x1003b7b4
mov bl, byte [edx + eax + 0xc]
and bl, 0xe0
cmp bl, 0xc0
jne 0x1003b7b4
mov al, byte [edx + eax + 0xe]
and al, 0x1c
cmp al, 0x18
jb 0x1003b7b4
add dword [esp + 0x28], edx
movsx esi, word [esp + 0x28]
test byte [esi + ecx + 0xe], 1
jne 0x1003bbfa
mov ecx, dword [esp + 0x40c]
push 0
push edi
push ecx
push ebp
call fcn.10039d20
mov edx, dword [0x1006babc]
lea ecx, [edx + eax*2]
mov edx, dword [0x1006bbc4]
add esp, 0xc
add ecx, eax
push ecx
push edx
call fcn.10002a70
mov ecx, dword [0x1006bbc4]
push 3
lea eax, [esp + 0x68]
push eax
push ecx
call fcn.100029d0
mov al, byte [esp + 0x70]
add esp, 0x18
cmp al, 0x6d
je 0x1003bbfa
mov ecx, dword [ebp + 0x21c]
mov dl, byte [esi + ecx + 0xc]
movzx ebx, word [ecx + 0xa]
mov byte [esp + 0x37], dl
and dl, 1
lea eax, [esi + ecx]
dec dl
neg dl
sbb edx, edx
inc edx
lea edx, [edx + edx + 5]
movsx edx, dx
mov dword [esp + 0x64], edx
add edx, esi
cmp ebx, edx
jle 0x1003b856
mov edx, dword [esp + 0x64]
mov dl, byte [edx + eax + 0xc]
and dl, 0xe0
cmp dl, 0xc0
je 0x1003bbfa
cmp byte [ecx], 0
js 0x1003bbfa
mov edx, dword [ebp + 0x21c]
mov ebx, dword [esp + 0x64]
add edx, esi
mov bl, byte [edx + ebx + 0xc]
xor bl, byte [edx + 0xc]
test bl, 0xc
jne 0x1003b691
mov dl, byte [esp + 0x37]
and dl, 0xc
cmp dl, 4
jne 0x1003b691
mov eax, dword [esp + 0x40c]
mov dword [esp + 0x30], 0
mov byte [eax], 0x49
jmp case.0x1003f261.33
cmp bl, 4
je 0x1003bb49
test bl, bl
je 0x1003bb49
mov al, byte [esi + ecx + 0xd]
and al, 0xf
cmp al, 8
je 0x1003b8c1
cmp al, 0xb
jne 0x1003b90d
cmp bl, 8
je 0x1003b912
mov ecx, dword [esp + 0x40c]
push 0
push edi
push ecx
push ebp
call fcn.10039d20
mov edx, dword [0x1006babc]
lea ecx, [edx + eax*2]
mov edx, dword [0x1006bbc4]
add esp, 0xc
add ecx, eax
push ecx
push edx
call fcn.10002a70
mov ecx, dword [0x1006bbc4]
push 3
lea eax, [esp + 0x68]
push eax
push ecx
call fcn.100029d0
add esp, 0x18
jmp 0x1003bb96
cmp bl, 8
jne 0x1003b922
mov dx, word [esi + ecx + 0x11]
mov word [esp + 0x40], dx
mov edi, dword [esp + 0x40]
jmp 0x1003b92c
mov al, byte [ecx]
test al, al
je 0x1003b94e
cmp al, 0x80
je 0x1003b94e
push 0
push 0xffffffffffffffff
lea eax, [esp + 0xd8]
push eax
push edi
push ecx
call fcn.10039eb0
mov eax, dword [esp + 0x42c]
mov byte [eax], 0x53
jmp 0x1003bbca
mov ebx, dword [esp + 0x40c]
push ebx
lea edx, [esp + 0x1d4]
push 0xffffffffffffffff
push edx
call fcn.100022a0
mov eax, dword [ebp + 0x21c]
xor ecx, ecx
mov cl, byte [esi + eax + 0xd]
and ecx, 0xf
push ecx
push 0xffffffffffffffff
push ebx
call fcn.1001d310
mov edx, dword [esp + 0x430]
push 0x10062978
push 0xffffffffffffffff
push edx
call fcn.10002250
mov eax, dword [esp + 0x43c]
push ebx
push 0xffffffffffffffff
push eax
call fcn.10002250
add esp, 0x30
cmp edi, 0xfbf4
jge case.0x10041644.69
push 0
push edi
push ebx
push ebp
call fcn.10039d20
mov ecx, dword [0x1006babc]
lea edx, [ecx + eax*2]
add edx, eax
mov eax, dword [0x1006bbc4]
add esp, 0xc
push edx
push eax
call fcn.10002a70
mov edx, dword [0x1006bbc4]
push 3
lea ecx, [esp + 0x68]
push ecx
push edx
call fcn.100029d0
movzx eax, byte [esp + 0x72]
movzx ecx, byte [esp + 0x71]
shl eax, 8
add esp, 0x18
add eax, ecx
je 0x1003ba8d
push 0
push 0xffffffffffffffff
lea edx, [esp + 0xd8]
push edx
push eax
mov eax, dword [ebp + 0x21c]
push eax
call fcn.10039eb0
add esp, 0x14
mov esi, ebx
lea eax, [esp + 0xd0]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x1003ba4c
test cl, cl
je 0x1003ba48
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x1003ba4c
add eax, 2
add esi, 2
test cl, cl
jne 0x1003ba24
xor eax, eax
jmp 0x1003ba51
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je case.0x10041644.69
mov esi, dword [esp + 0x418]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003ba65
sub eax, edx
movsx eax, ax
add eax, esi
lea ecx, [esp + 0xd0]
mov byte [eax + 1], 0x50
push ecx
mov byte [eax], 0x7c
add eax, 2
push 0xffffffffffffffff
push eax
jmp 0x1003b2da
mov ebp, dword [ebp + 0x21c]
mov al, byte [esi + ebp + 0xc]
and al, 1
dec al
neg al
sbb eax, eax
inc eax
lea eax, [eax + eax + 5]
movsx edx, ax
add edx, esi
mov al, byte [edx + ebp + 0xc]
lea ecx, [edx + ebp]
and al, 0xe0
cmp al, 0xc0
jne case.0x10041644.69
mov ebp, dword [esp + 0x418]
mov eax, ebp
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x1003bac6
movzx ecx, byte [ecx + 0xd]
and ecx, 0xf
push ecx
lea edx, [esp + 0x1d4]
sub eax, esi
push 0xffffffffffffffff
push edx
mov edi, eax
call fcn.1001d310
add esp, 0xc
lea esi, [esp + 0x1d0]
lea eax, [ebp + 1]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x1003bb1d
test cl, cl
je 0x1003bb19
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x1003bb1d
add eax, 2
add esi, 2
test cl, cl
jne 0x1003baf5
xor eax, eax
jmp 0x1003bb22
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je case.0x10041644.69
movsx eax, di
add eax, ebp
lea ecx, [esp + 0x1d0]
mov byte [eax + 1], 0x50
push ecx
mov byte [eax], 0x7c
add eax, 2
push 0xffffffffffffffff
push eax
jmp 0x1003b2da
mov edx, dword [esp + 0x40c]
push 0
push edi
push edx
push ebp
call fcn.10039d20
mov ecx, dword [0x1006babc]
lea edx, [ecx + eax*2]
add edx, eax
mov eax, dword [0x1006bbc4]
add esp, 0xc
push edx
push eax
call fcn.10002a70
mov edx, dword [0x1006bbc4]
push 3
lea ecx, [esp + 0x68]
push ecx
push edx
call fcn.100029d0
mov al, byte [esp + 0x70]
add esp, 0x18
cmp al, 0x62
jne 0x1003b88b
movzx eax, byte [esp + 0x5a]
movzx ecx, byte [esp + 0x59]
shl eax, 8
add eax, ecx
je 0x1003bbe3
push 0
push 0xffffffffffffffff
lea edx, [esp + 0xd8]
push edx
push eax
mov eax, dword [ebp + 0x21c]
push eax
call fcn.10039eb0
mov eax, dword [esp + 0x42c]
mov byte [eax], 0x50
lea ecx, [esp + 0xe4]
push ecx
inc eax
push 0xffffffffffffffff
push eax
call fcn.100022a0
add esp, 0x20
jmp case.0x10041644.69
mov edx, dword [esp + 0x40c]
mov dword [esp + 0x30], 0
mov byte [edx], 0x53
jmp case.0x1003f261.33
mov byte [0x1006ab48], 0
mov dword [0x1006ab4c], edi
mov ecx, dword [ebp + 0x21c]
mov dl, byte [esi + ecx + 0xc]
and dl, 0x10
sub dl, 0x10
neg dl
sbb edx, edx
and edx, 0xffffffc0
add edx, 0x80
mov dword [esp + 0x4c], edx
jmp 0x1003be52
mov dl, byte [esp + 0x10]
cmp dl, 0x80
jne 0x1003bca1
mov al, byte [ecx + 0xd]
and al, 0x10
jne 0x1003bc4a
mov dword [esp + 0x4c], 0x80
jmp 0x1003be45
cmp al, 0x10
jne 0x1003bca1
mov edx, dword [ebp + 0x21c]
mov al, byte [edx + 0xe]
movzx dx, byte [edx + 0xf]
and al, 7
movzx ax, al
mov dword [esp + 0x4c], 0x80
shl eax, 8
add eax, edx
test ax, ax
je 0x1003bd52
test byte [ecx + 0xe], 8
je 0x1003bc80
neg eax
mov ecx, dword [esp + 0x40c]
movsx eax, ax
push 0xffffffffffffffff
add edi, eax
push ecx
push edi
call fcn.1001e6e0
mov byte [0x1006ab48], 5
jmp 0x1003be52
cmp byte [esp + 0x16], 1
mov esi, dword [esp + 0x40c]
je 0x1003bdbe
mov eax, dword [ebp + 0x21c]
mov edx, dword [eax + 0x31c]
push edx
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x28]
push ecx
push 0
push 0x1f4
push edx
push esi
push eax
call fcn.10023c60
add esp, 0x1c
test ax, ax
jne 0x1003bdbe
cmp dword [esp + 0x404], 3
jne 0x1003bd59
cmp byte [esp + 0x10], 0x20
jne 0x1003bd59
mov dword [0x1006ab4c], edi
mov byte [0x1006ab48], 2
mov eax, dword [ebp + 0x21c]
cmp byte [eax + 1], 0x30
mov dword [esp + 0x4c], 0x80
jne 0x1003bd1d
mov byte [0x1006ab48], 3
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003bd22
sub eax, edx
movsx ecx, ax
lea eax, [ecx + esi]
mov byte [eax - 2], 0x74
mov byte [eax - 1], 0x6f
mov edx, dword [ebp + 0x21c]
mov al, byte [edx + 1]
cmp al, 0x30
je 0x1003be52
cmp al, 0x20
je 0x1003be52
mov esi, dword [esp + 0x40c]
cmp dword [esp + 0x404], 3
mov byte [esi], 0x4e
jne 0x1003bd78
cmp byte [esp + 0x10], 0xe0
jne 0x1003bd78
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x1003bdaa
mov byte [esi], 0x49
cmp byte [esp + 0x10], 0x80
mov dword [esp + 0x30], 0
jne case.0x1003f261.33
mov eax, dword [ebp + 0x21c]
test byte [eax + 0xd], 0xf
jne case.0x1003f261.33
mov ecx, dword [esp + 0x40c]
mov byte [ecx], 0x49
jmp case.0x1003f261.33
mov dword [esp + 0x4c], 0x80
mov byte [0x1006ab48], 4
jmp 0x1003be4c
cmp byte [esp + 0x16], 1
mov dword [esp + 0x4c], 0x80
jne 0x1003be15
mov eax, dword [ebp + 0x21c]
mov edx, dword [eax + 0x31c]
push edx
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x28]
push ecx
push 0
push 0x1f4
push edx
push esi
push eax
call fcn.10023c60
add esp, 0x1c
test ax, ax
je 0x1003be05
mov eax, dword [esp + 0x24]
cmp eax, 0x10000
jle 0x1003be19
mov eax, edi
mov dword [0x1006ab4c], eax
mov byte [0x1006ab48], 2
jmp 0x1003be52
mov eax, dword [esp + 0x24]
mov dword [0x1006ab4c], eax
mov byte [0x1006ab48], 2
jmp 0x1003be52
cmp edi, 0x30000
jle 0x1003bf62
lea ecx, [edi - 0x30000]
cmp ecx, 0xfbf4
jge 0x1003bf56
mov byte [0x1006ab48], 1
mov dword [0x1006ab4c], edi
mov esi, dword [esp + 0x40c]
push esi
lea edx, [esp + 0x1f4]
push 0xffffffffffffffff
push edx
xor edi, edi
call fcn.100022a0
mov ebx, dword [esp + 0x424]
add esp, 0xc
mov dword [esp + 0x44], edi
mov dword [esp + 0x24], edi
lea ecx, [ecx]
mov eax, dword [esp + 0x24]
cmp eax, 3
ja case.default.0x1003be89
jmp dword [eax*4 + 0x100416b4]
mov byte [esp + 0x10], 0x88
jmp case.default.0x1003be89
mov byte [esp + 0x10], 0x84
jmp case.default.0x1003be89
mov byte [esp + 0x10], 0x48
jmp case.default.0x1003be89
mov byte [esp + 0x10], 0x44
lea eax, [esp + 0x1f0]
push eax
push 0xffffffffffffffff
push esi
call fcn.100022a0
mov ecx, dword [esp + 0x42c]
mov edx, dword [esp + 0x420]
mov eax, dword [esp + 0x58]
push ecx
movzx ecx, byte [esp + 0x20]
push 0xffffffffffffffff
push ebx
push 0xffffffffffffffff
push edx
push esi
push eax
push 4
push ecx
push 0
push ebp
call fcn.1003acf0
add esp, 0x38
test eax, eax
je 0x1003bf2c
mov eax, dword [esp + 0x44]
test ax, ax
je 0x1003bf02
test di, di
je 0x1003bf02
movsx edx, di
mov byte [edx + ebx], 0x7c
inc edi
inc al
movsx ecx, di
inc edi
movsx edx, di
push esi
add edx, ebx
push 0xffffffffffffffff
push edx
mov byte [ecx + ebx], al
call fcn.100022a0
mov eax, esi
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003bf21
sub eax, edx
add edi, eax
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x24]
inc eax
inc edx
cmp ax, 4
mov dword [esp + 0x44], eax
mov dword [esp + 0x24], edx
jl 0x1003be80
test di, di
je case.0x1003f261.33
jmp case.0x10041644.69
mov dword [esp + 0x30], eax
mov byte [esi], 0x4e
jmp case.0x1003f261.33
mov al, byte [esp + 0x44]
push 0xffffffffffffffff
mov byte [ebx + esi - 1], al
mov ecx, dword [ebp + 0x21c]
push esi
push ecx
call fcn.1001b1c0
add esp, 0xc
cmp eax, 0xf42400
je 0x1003bf9f
mov edx, dword [ebp + 0x21c]
cmp byte [edx + 0xc], 0x73
jne 0x1003bf9f
mov byte [esi], 0x49
mov dword [esp + 0x30], 0
jmp case.0x1003f261.33
mov byte [esi], 0x45
mov dword [esp + 0x30], 0
jmp case.0x1003f261.33
mov ebx, dword [esp + 0x3fc]
push 0x10062974
xor edi, edi
lea eax, [esp + 0x60]
push 0xffffffffffffffff
push eax
mov byte [esp + 0x3b], 0
mov dword [esp + 0x6c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x54], edi
mov word [0x1006ab50], bx
mov dword [esp + 0x58], edi
call fcn.100022a0
push 0x1006282c
lea ecx, [esp + 0x78]
push 0xffffffffffffffff
push ecx
call fcn.100022a0
mov al, byte [esi]
add esp, 0x18
cmp al, 0x26
mov ecx, 1
mov dword [esp + 0x30], ecx
jne 0x1003c013
xor edx, edx
mov dword [esp + 0x408], edx
jmp 0x1003c01a
mov edx, dword [esp + 0x408]
cmp byte [0x1006ab58], 2
je 0x1003d9af
cmp dx, 0xfbf4
jb 0x1003c3c3
cmp dx, 0xfde8
ja 0x1003c3c3
movzx edx, byte [esi + 2]
movzx edi, word [esp + 0x408]
lea eax, [esi + 2]
mov dword [esp + 0x3c], eax
lea eax, [edi - 0xfbf4]
imul eax, eax, 0xd
mov dword [esp + 0x44], edx
add eax, dword [0x1006be84]
push eax
push 0xffffffffffffffff
push esi
call fcn.100022a0
mov eax, dword [esp + 0x410]
add esp, 0xc
cmp eax, 2
mov byte [0x1006ab58], 0
jne case.0x1003f261.33
mov eax, dword [esp + 0x44]
test eax, eax
jne case.0x1003f261.33
mov ecx, dword [ebp + 0x38]
movzx eax, word [ecx + ebx*2]
lea edx, [eax + eax*2]
mov eax, dword [ebp + 4]
movzx ecx, word [eax + edx*4 + 4]
mov edx, dword [ebp + 0x14]
mov al, byte [ecx + edx + 3]
mov ecx, edi
imul ecx, ecx, 0xd
mov dl, al
and al, 0xc0
mov byte [esp + 0x12], al
mov eax, dword [0x1006be84]
mov cx, word [ecx + eax - 0xccb59]
mov word [esp + 0x44], cx
mov ecx, dword [ebp + 0x34]
and dl, 0xc
cmp byte [ebx + ecx], 8
mov byte [esp + 0x10], dl
jne 0x1003c112
mov ecx, dword [ebp + 0x38]
movzx ecx, word [ecx + ebx*2]
mov ebx, dword [ebp + 4]
lea ecx, [ecx + ecx*2]
movzx ecx, word [ebx + ecx*4 + 4]
mov ebx, dword [ebp + 0x14]
mov cl, byte [ecx + ebx + 3]
and cl, 0xc0
cmp cl, 0x40
jne 0x1003c112
mov ebx, dword [0x1006be90]
cmp edi, dword [ebx + 0x14]
jne 0x1003c118
mov eax, dword [esp + 0x3c]
mov byte [eax], 0x61
mov eax, dword [0x1006be84]
mov ebx, dword [0x1006be90]
mov ecx, dword [esp + 0x44]
mov cl, byte [ecx + eax]
cmp cl, 0x61
jne 0x1003c260
cmp byte [esp + 0x12], 0x40
jne 0x1003c160
cmp edi, dword [ebx + 0xd4]
je 0x1003c14c
cmp edi, dword [ebx + 0xd8]
je 0x1003c14c
cmp edi, dword [ebx + 0x14]
jne 0x1003c160
mov eax, dword [esp + 0x3c]
mov byte [eax], cl
jmp 0x1003c160
push 0x1006282c
push 0xffffffffffffffff
push esi
call fcn.100022a0
mov dl, byte [esp + 0x1c]
add esp, 0xc
cmp dl, 4
jne case.0x1003f261.33
mov eax, dword [esp + 0x40c]
mov edi, 0x10062970
mov esi, eax
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x1003c18a
mov byte [eax + 1], dl
jmp case.0x1003f261.33
mov edi, 0x10062828
mov esi, eax
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x1003c1b1
push 0x10062344
push 0xffffffffffffffff
push eax
call fcn.100022a0
add esp, 0xc
jmp case.0x1003f261.33
mov edi, 0x100623d8
mov esi, eax
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x1003c1d8
push str.gli
push 0xffffffffffffffff
push eax
call fcn.100022a0
add esp, 0xc
jmp case.0x1003f261.33
mov edi, 0x1006282c
mov esi, eax
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x1003c1f3
mov byte [eax + 1], 0x65
jmp case.0x1003f261.33
mov edi, 0x10062964
mov esi, eax
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x1003c21a
push 0x10062748
push 0xffffffffffffffff
push eax
call fcn.100022a0
add esp, 0xc
jmp case.0x1003f261.33
mov esi, eax
mov edi, 0x10062960
mov ecx, 4
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne case.0x1003f261.33
mov ecx, dword [ebp + 0x34]
mov edx, dword [esp + 0x3fc]
cmp byte [edx + ecx], 8
je case.0x1003f261.33
mov eax, dword [esp + 0x40c]
push str.delle
push 0xffffffffffffffff
push eax
call fcn.100022a0
add esp, 0xc
jmp case.0x1003f261.33
cmp dl, 4
jne 0x1003c35b
cmp byte [esp + 0x12], 0x40
je 0x1003c2fe
cmp cl, 0x6f
jne 0x1003c2fe
mov edi, dword [esp + 0x44]
mov bl, byte [edi + eax + 1]
test bl, bl
je 0x1003c2fe
cmp byte [esi + 1], 0x69
je 0x1003c2fe
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003c294
sub eax, edx
movsx ecx, ax
lea eax, [ecx + esi - 1]
mov cl, byte [eax]
movzx edx, cl
cmp byte [edx + 0x1006bac0], 3
jne 0x1003c2ce
cmp cl, 0x61
jne 0x1003c2bf
mov byte [eax], 0x65
jmp case.0x1003f261.33
mov eax, dword [esp + 0x3c]
mov dword [eax], 0x696c67
jmp case.0x1003f261.33
cmp cl, 0x6c
jne 0x1003c2db
mov byte [eax], 0x69
jmp case.0x1003f261.33
cmp cl, 0x27
jne case.0x1003f261.33
mov ecx, dword [str.gli]
mov eax, dword [esp + 0x3c]
mov dword [eax], ecx
mov dl, byte [0x1006296c]
mov byte [eax + 4], dl
jmp case.0x1003f261.33
cmp cl, 0x76
jne 0x1003c35b
cmp byte [esi + 1], 0xe0
jne 0x1003c323
cmp byte [esi], 0x64
jne 0x1003c323
push str.danno
push 0xffffffffffffffff
push esi
call fcn.100022a0
add esp, 0xc
jmp case.0x1003f261.33
mov al, byte [esi]
cmp al, 0x70
jne 0x1003c33e
push str.possono
push 0xffffffffffffffff
push esi
call fcn.100022a0
add esp, 0xc
jmp case.0x1003f261.33
cmp al, 0xe8
jne case.0x1003f261.33
push str.sono
push 0xffffffffffffffff
push esi
call fcn.100022a0
add esp, 0xc
jmp case.0x1003f261.33
cmp byte [esp + 0x12], 0x40
jne case.0x1003f261.33
cmp cl, 0x6f
jne case.0x1003f261.33
mov eax, dword [esp + 0x3c]
cmp byte [eax], 0x6c
jne case.0x1003f261.33
mov eax, esi
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003c381
sub eax, edi
cmp ax, 3
jne case.0x1003f261.33
cmp dl, 8
jne 0x1003c3ae
push 0x1006282c
push 0xffffffffffffffff
push esi
call fcn.10002250
add esp, 0xc
jmp case.0x1003f261.33
push 0x100623dc
push 0xffffffffffffffff
push esi
call fcn.10002250
add esp, 0xc
jmp case.0x1003f261.33
cmp dword [esp + 0x404], 2
jne 0x1003ca4c
cmp al, 0x26
mov dword [esp + 0x44], edi
mov dword [esp + 0x54], edi
jne 0x1003c7bd
mov eax, esi
mov dword [esp + 0x44], 0x3e8
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003c3f0
sub eax, edx
movsx edi, ax
mov cl, byte [edi + esi - 1]
cmp cl, 0x24
mov dword [esp + 0x18], eax
lea eax, [edi + esi - 1]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x1c], eax
jne 0x1003c42d
push edi
lea ecx, [esi + 1]
push ecx
push esi
call fcn.1005881b
add esp, 0xc
mov byte [edi + esi - 2], 0
jmp case.0x1003f261.33
mov edx, dword [ebp + 0x38]
mov eax, dword [esp + 0x3fc]
movzx eax, word [edx + eax*2]
mov edx, dword [ebp + 4]
lea ecx, [eax + eax*2]
movzx eax, word [edx + ecx*4 + 4]
mov ecx, dword [ebp + 0x14]
mov al, byte [eax + ecx + 3]
lea edx, [esp + 0x420]
push edx
and al, 0xc
push 0
mov byte [esp + 0x1c], al
mov byte [esp + 0x18], al
mov eax, dword [ebp + 0x21c]
lea ebx, [esi + 1]
push ebx
push eax
call fcn.1002a170
movzx ecx, byte [ebx]
mov edi, eax
push ecx
mov dword [esp + 0x54], edi
call fcn.100578a4
add esp, 0x14
test eax, eax
jne 0x1003c787
cmp edi, 0x10000
jg 0x1003c787
cmp edi, 0xf42400
jne 0x1003c4a8
mov dword [esp + 0x30], eax
jmp case.0x1003f261.33
mov edx, dword [ebp + 0x21c]
mov al, byte [edx + 2]
cmp al, 2
jne 0x1003c4e0
push 0x10062444
lea edx, [esp + 0x60]
push 0xffffffffffffffff
push edx
mov dword [esp + 0x34], 5
mov byte [esi], 1
mov dword [esp + 0x414], edi
call fcn.100022a0
add esp, 0xc
jmp 0x1003c977
cmp al, 4
jne 0x1003c531
mov eax, dword [esp + 0x3c]
mov byte [esi], 5
cmp byte [eax + esi - 4], 0x63
mov dword [esp + 0x28], 5
mov dword [esp + 0x408], edi
jne 0x1003c51a
push 0x10062444
lea ecx, [esp + 0x60]
push 0xffffffffffffffff
push ecx
call fcn.100022a0
add esp, 0xc
jmp 0x1003c977
mov edx, dword [esp + 0x1c]
cmp byte [edx], 0x65
jne 0x1003c977
mov byte [esp + 0x69], 0x65
jmp 0x1003c977
mov al, byte [edx + 0xc]
mov cl, al
and cl, 0xe0
cmp cl, 0x80
je 0x1003c57d
cmp cl, 0x20
je 0x1003c57d
mov dword [esp + 0x28], 3
cmp cl, 0x20
mov byte [esp + 0x12], 0x80
mov byte [esp + 0x13], 0x80
jne 0x1003c5e9
mov eax, dword [esp + 0x3c]
lea eax, [eax + esi - 1]
mov al, byte [eax]
cmp al, 0x61
je 0x1003c6eb
cmp al, 0x65
jne case.default.0x1003c61d
jmp 0x1003c6eb
cmp cl, 0x20
mov dword [esp + 0x28], 4
jne 0x1003c54b
mov eax, dword [esp + 0x3c]
inc eax
push eax
lea eax, [esi + 1]
push eax
push esi
call fcn.1005881b
mov eax, dword [esp + 0x24]
add esp, 0xc
dec eax
movsx ecx, ax
add esi, ecx
mov dword [esp + 0x18], eax
cmp byte [esi - 2], 0x65
mov byte [esp + 0x12], 0x80
jne 0x1003c5bd
mov byte [esp + 0x11], 0x40
jmp 0x1003c5cd
cmp byte [esi - 1], 0x61
jne 0x1003c5c8
mov byte [esp + 0x12], 0x40
mov byte [esp + 0x11], 0x60
movzx eax, byte [esp + 0x12]
movzx edx, byte [esp + 0x14]
mov ebx, dword [esp + 0x48]
add eax, edx
mov dword [esp + 0x400], eax
jmp case.0x1003f0f4.3
mov bl, byte [edx]
cmp bl, 2
mov byte [esp + 0x17], bl
je 0x1003c6eb
cmp bl, 3
je 0x1003c6eb
cmp cl, 0x80
jne 0x1003c632
xor ebx, ebx
mov bl, byte [edx + 0xd]
test bl, 0x10
je 0x1003c62e
and ebx, 7
dec ebx
cmp ebx, 3
ja case.default.0x1003c61d
jmp dword [ebx*4 + 0x100416c4]
mov byte [esp + 0x12], 0x80
jmp case.default.0x1003c61d
mov bl, byte [esp + 0x17]
cmp cl, 0xc0
jne 0x1003c6c1
test al, 0x10
jne 0x1003c6c1
mov cx, word [edx + 0xa]
cmp cx, 7
ja 0x1003c69a
cmp bl, 0x80
mov byte [esp + 0x12], 0x40
mov byte [esp + 0x13], 0x40
jne case.default.0x1003c61d
test al, 1
jne case.default.0x1003c61d
mov ecx, dword [ebp + 0x38]
mov edx, dword [esp + 0x3fc]
movzx eax, word [ecx + edx*2]
mov ecx, dword [ebp + 4]
lea eax, [eax + eax*2]
movzx edx, word [ecx + eax*4 + 4]
mov eax, dword [ebp + 0x14]
mov cl, byte [edx + eax + 3]
and cl, 0xc0
cmp cl, 0x40
jne case.default.0x1003c61d
mov byte [esp + 0x12], bl
mov byte [esp + 0x13], bl
jmp case.default.0x1003c61d
and al, 1
dec al
neg al
sbb eax, eax
inc eax
lea eax, [eax + eax + 5]
mov dl, byte [eax + edx + 0xc]
and dl, 0xe0
cmp dl, 0x40
jne case.default.0x1003c61d
movzx ecx, cx
cmp ecx, eax
jle case.default.0x1003c61d
cmp bl, 0x80
je case.default.0x1003c61d
jmp 0x1003c6eb
cmp cl, 0x40
jne case.default.0x1003c61d
mov dl, byte [edx + 0xd]
and dl, 0xf0
cmp dl, 0x80
jne case.default.0x1003c61d
mov eax, dword [esp + 0x3c]
lea eax, [eax + esi - 1]
mov al, byte [eax]
cmp al, 0x61
je 0x1003c6e3
cmp al, 0x65
jne case.default.0x1003c61d
mov dword [esp + 0x28], 4
mov byte [esp + 0x13], 0x40
mov byte [esp + 0x12], 0x40
mov al, byte [esp + 0x14]
test al, al
jne 0x1003c705
mov cl, 8
mov byte [esp + 0x10], cl
jmp 0x1003c719
cmp al, 4
je 0x1003c715
cmp al, 8
je 0x1003c715
mov cl, 8
mov byte [esp + 0x10], cl
jmp 0x1003c719
mov cl, byte [esp + 0x10]
movzx edx, byte [esp + 0x12]
movzx eax, cl
add eax, edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x400], eax
lea eax, [edx + esi - 1]
movzx eax, byte [eax]
mov bl, byte [eax + 0x1006bac0]
test bl, bl
jne 0x1003c758
cmp cl, 8
jne 0x1003c758
inc edx
push edx
lea eax, [esi + 1]
push eax
push esi
call fcn.1005881b
add esp, 0xc
jmp case.0x1003f261.33
mov eax, dword [0x1006be90]
cmp edi, dword [eax + 4]
jne 0x1003c977
cmp cl, 4
jne 0x1003c977
inc edx
push edx
lea eax, [esi + 1]
push eax
push esi
call fcn.1005881b
add esp, 0xc
mov byte [esi + 4], 0x65
jmp case.0x1003f261.33
mov ecx, dword [esp + 0x3c]
inc ecx
push ecx
push ebx
push esi
call fcn.1005881b
mov al, byte [esi]
add esp, 0xc
cmp al, 0x54
jne case.0x1003f261.33
cmp byte [esi + 2], 0x68
jne case.0x1003f261.33
push 1
push 0x2d
push 0xffffffffffffffff
push esi
push esi
call fcn.10018400
jmp case.0x1003f261.33
mov al, byte [esi + 2]
test al, al
jne 0x1003c948
mov edx, dword [ebp + 0x34]
cmp byte [ebx + edx], 5
mov ecx, dword [ebp + 4]
jne 0x1003c8ee
mov eax, dword [ebp + 0x38]
movzx eax, word [eax + ebx*2]
mov edi, dword [ebp + 0x14]
lea eax, [eax + eax*2]
movzx ecx, word [ecx + eax*4 + 4]
lea eax, [ecx + edi]
cmp byte [eax + 8], 0x50
jne 0x1003c8bd
mov edx, dword [ebp + 0x38]
movzx eax, word [edx + ebx*2]
mov ecx, dword [ebp + 4]
lea eax, [eax + eax*2]
movzx edx, byte [ecx + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [eax + 8]
mov cl, byte [ecx + edx - 1]
movzx edx, word [eax + 4]
mov al, byte [edx + edi + 9]
test al, al
mov byte [esp + 0x3c], cl
jne 0x1003c83d
xor eax, eax
cmp cl, 0x65
sete al
lea eax, [eax*4 + 4]
mov dword [esp + 0x400], eax
jmp 0x1003c973
dec ebx
push ebx
push ebp
call fcn.1003a8c0
add esp, 8
test eax, eax
mov dword [esp + 0x44], eax
jl 0x1003c8a1
mov ecx, dword [ebp + 0x38]
movzx eax, word [ecx + eax*2]
lea ecx, [eax + eax*2]
mov eax, dword [ebp + 4]
movzx edx, word [eax + ecx*4 + 4]
mov al, byte [edi + edx + 4]
add edi, edx
cmp al, 0x61
jne 0x1003c8a1
movzx ax, byte [edi + 3]
cmp ax, 0x33
mov cl, 8
mov byte [esp + 0x10], cl
mov dword [esp + 0x18], eax
jle 0x1003c88d
cmp ax, 0x37
jge 0x1003c88d
mov cl, 4
mov byte [esp + 0x10], cl
movzx eax, cl
add eax, 0x80
mov dword [esp + 0x400], eax
jmp 0x1003c973
mov eax, dword [esp + 0x3c]
push eax
call fcn.1001cde0
movzx ecx, al
add esp, 4
mov dword [esp + 0x400], ecx
jmp 0x1003c973
movzx ax, byte [eax + 3]
cmp ax, 0x33
mov dword [esp + 0x18], eax
jle 0x1003c8d4
cmp ax, 0x37
mov al, 4
jl 0x1003c8d6
mov al, 8
mov byte [esp + 0x10], al
movzx eax, al
add eax, 0x80
mov dword [esp + 0x400], eax
jmp 0x1003c973
mov edx, dword [ebp + 0x38]
movzx eax, word [edx + ebx*2]
lea eax, [eax + eax*2]
movzx edx, word [ecx + eax*4 + 4]
mov eax, dword [ebp + 0x14]
mov al, byte [edx + eax + 3]
mov cl, al
and cl, 0xc0
and al, 0xc
test cl, cl
mov byte [esp + 0x13], cl
mov byte [esp + 0x12], cl
mov byte [esp + 0x14], al
mov byte [esp + 0x10], al
jne 0x1003c929
mov cl, 0x80
mov byte [esp + 0x13], cl
mov byte [esp + 0x12], cl
test al, al
jne 0x1003c937
mov al, 8
mov byte [esp + 0x14], al
mov byte [esp + 0x10], al
movzx eax, al
movzx ecx, cl
add eax, ecx
mov dword [esp + 0x400], eax
jmp 0x1003c973
mov dword [esp + 0x54], ecx
mov cl, byte [esp + 0x400]
mov al, cl
and al, 0xc0
mov byte [esp + 0x13], al
mov byte [esp + 0x12], al
mov al, cl
and al, 0xc
mov byte [esp + 0x14], al
mov byte [esp + 0x10], al
mov dword [esp + 0x28], 3
mov edi, dword [esp + 0x40]
cmp byte [esi + 3], 1
mov byte [esp + 0x15], 0
jne 0x1003c991
mov byte [esp + 0x15], 1
mov dword [esp + 0x28], 7
jmp 0x1003c9a4
mov al, byte [esi + 1]
cmp al, 1
jb 0x1003c9a4
cmp al, 3
ja 0x1003c9a4
mov dword [esp + 0x28], 4
cmp byte [esi + 4], 1
mov byte [esp + 0x17], 0
jne 0x1003ca8f
mov al, byte [esi + 2]
test al, al
mov byte [esp + 0x17], 1
mov dword [esp + 0x28], 3
jne 0x1003c9f3
mov edx, dword [ebp + 0x38]
mov eax, dword [esp + 0x3fc]
movzx eax, word [edx + eax*2]
mov edx, dword [ebp + 4]
lea ecx, [eax + eax*2]
movzx eax, word [edx + ecx*4 + 4]
mov ecx, dword [ebp + 0x14]
mov al, byte [eax + ecx + 3]
and al, 0xc
mov byte [esp + 0x14], al
mov byte [esp + 0x10], al
jmp 0x1003c9fd
mov byte [esp + 0x14], 4
mov byte [esp + 0x10], 4
mov byte [esp + 0x13], 0x80
mov byte [esp + 0x12], 0x80
cmp dword [esp + 0x44], 0x3e8
mov dword [esp + 0x24], 0
je 0x1003ed82
cmp dword [esp + 0x404], 6
jne 0x1003ed76
mov eax, dword [ebp + 0x21c]
lea edx, [esp + 0x420]
push edx
push 0
push esi
push eax
call fcn.1002a170
add esp, 0x10
mov edi, eax
jmp 0x1003ed7e
mov edx, dword [ebp + 0x38]
movzx eax, word [edx + ebx*2]
mov ecx, dword [ebp + 4]
mov edi, dword [esp + 0x40]
lea eax, [eax + eax*2]
movzx edx, word [ecx + eax*4 + 4]
mov eax, dword [ebp + 0x14]
mov al, byte [edx + eax + 3]
mov cl, al
and cl, 0xc0
and al, 0xc
mov byte [esp + 0x14], al
mov byte [esp + 0x10], al
mov byte [esp + 0x13], cl
mov byte [esp + 0x12], cl
movzx eax, al
movzx ecx, cl
add eax, ecx
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x28]
cmp ax, 3
je 0x1003ca07
cmp ax, 4
je 0x1003ca07
cmp ax, 5
jne 0x1003e9d1
mov edx, dword [ebp + 0x38]
mov ebx, dword [esp + 0x3fc]
movzx eax, word [edx + ebx*2]
mov ecx, dword [ebp + 4]
lea eax, [eax + eax*2]
movzx edx, word [ecx + eax*4 + 4]
mov eax, dword [ebp + 0x14]
mov cl, byte [eax + edx + 3]
add eax, edx
mov al, byte [eax + 8]
sub cl, 0x30
test al, al
mov byte [esp + 0x37], 1
mov byte [esp + 0x16], 0
mov byte [esp + 0x11], 0
mov byte [esp + 0x3c], cl
mov byte [esp + 0x18], al
jne 0x1003caf9
mov byte [esp + 0x18], 0x46
mov ecx, dword [esp + 0x18]
push ecx
call fcn.1001e330
mov edx, dword [ebp + 0x38]
mov ecx, dword [ebp + 4]
mov byte [esp + 0x1c], al
movzx eax, word [edx + ebx*2]
lea eax, [eax + eax*2]
movzx edx, word [ecx + eax*4 + 4]
mov eax, dword [ebp + 0x14]
mov cl, byte [eax + edx + 9]
add eax, edx
mov dl, byte [eax + 7]
add esp, 4
cmp dl, 0x43
mov byte [esp + 0x44], cl
jne 0x1003cb3b
test cl, cl
jbe 0x1003cb3b
dec cl
mov byte [esp + 0x44], cl
mov ecx, dword [esp + 0x44]
push ecx
call fcn.1001e3a0
mov edx, dword [ebp + 0x34]
movzx edi, word [esp + 0x40c]
mov byte [esp + 0x48], al
mov al, byte [ebx + edx]
add esp, 4
cmp al, 3
mov dword [esp + 0x40], edi
jne 0x1003cb8d
mov eax, dword [ebp + 0x38]
movzx eax, word [eax + ebx*2]
mov edx, dword [ebp + 4]
lea ecx, [eax + eax*2]
movzx eax, word [edx + ecx*4 + 4]
mov ecx, dword [ebp + 0x14]
test byte [eax + ecx + 2], 1
je 0x1003cb8d
mov byte [esp + 0x18], 4
mov byte [esp + 0x44], 0
mov byte [esp + 0x3c], 1
cmp dword [0x1006ab70], edi
je 0x1003ccaa
xor ebx, ebx
push ebx
push edi
push esi
push ebp
call fcn.10039d20
mov edx, dword [0x1006c010]
lea ecx, [edx + eax*2]
mov edx, dword [0x1006bbc4]
add esp, 0xc
add ecx, eax
push ecx
push edx
call fcn.10002a70
mov ecx, dword [0x1006bbc4]
push 6
lea eax, [esp + 0x90]
push eax
push ecx
call fcn.100029d0
mov dx, word [esp + 0x98]
mov al, byte [esp + 0x9a]
mov cx, word [esp + 0x9b]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x50], ebx
mov word [esp + 0x34], dx
mov dl, byte [esp + 0x9d]
mov byte [esp + 0x36], al
mov eax, dword [esp + 0x34]
mov word [esp + 0x50], cx
mov byte [esp + 0x52], dl
mov ebx, dword [esp + 0x50]
sub ebx, eax
add esp, 0x18
test ebx, ebx
jle 0x1003cc5a
cmp ebx, 0x20
jge 0x1003cc5a
mov ecx, dword [0x1006be9c]
mov edx, dword [0x1006bbc4]
push 0
add eax, ecx
push eax
push edx
call fcn.10002a70
mov ecx, dword [0x1006bbc4]
push ebx
lea eax, [esp + 0x90]
push eax
push ecx
call fcn.100029d0
add esp, 0x18
mov dword [0x1006ab70], edi
jmp 0x1003ccae
xor edx, edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], edx
mov dword [0x1006ab70], edi
jmp 0x1003ccae
mov ebx, dword [esp + 0x48]
mov cl, byte [esp + 0x80]
xor al, al
and cl, 0xe0
cmp cl, 0x80
mov byte [esp + 0x1c], 0
mov byte [esp + 0x15], al
mov byte [esp + 0x14], 0x61
jne 0x1003ccd3
mov al, 5
mov byte [esp + 0x15], al
movzx eax, al
mov al, byte [esp + eax + 0x80]
mov dl, al
and dl, 0xe0
cmp dl, 0xc0
jne 0x1003ccff
mov dl, byte [esp + 0x15]
and al, 1
dec al
neg al
sbb al, al
inc al
shl al, 1
add al, 5
add dl, al
mov byte [esp + 0x15], dl
movzx eax, byte [esp + 0x15]
cmp eax, ebx
mov dword [esp + 0x50], eax
jge 0x1003cd25
lea edx, [esp + eax + 0x80]
mov dword [esp + 0x38], edx
mov dl, byte [edx]
and dl, 0xe0
cmp dl, 0x20
je 0x1003cff6
cmp cl, 0x80
jne 0x1003cef9
mov al, byte [esp + 0x18]
cmp al, 6
je 0x1003cedf
cmp al, 4
je 0x1003cedf
cmp al, 5
jne 0x1003ce4d
mov ecx, dword [esp + 0x3fc]
mov eax, dword [ebp + 0x38]
movzx eax, word [eax + ecx*2]
lea edx, [eax + eax*2]
mov eax, dword [ebp + 4]
movzx ecx, byte [eax + edx*4]
lea eax, [eax + edx*4]
mov edx, dword [eax + 8]
mov cl, byte [edx + ecx - 1]
movzx edx, word [eax + 4]
mov eax, dword [ebp + 0x14]
mov byte [esp + 0x1c], cl
cmp byte [edx + eax + 7], 0x56
jne 0x1003ce34
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x1003ce34
mov ecx, dword [esp + 0x3fc]
mov esi, dword [ebp + 0x38]
dec ecx
push ecx
push ebp
call fcn.1003a8c0
movsx edx, ax
movzx eax, word [esi + edx*2]
lea ecx, [eax + eax*2]
mov eax, dword [ebp + 4]
movzx edx, word [eax + ecx*4 + 4]
mov ecx, dword [ebp + 0x14]
movzx dx, byte [edx + ecx + 3]
add esp, 8
mov dword [esp + 0x18], edx
movsx edx, dx
movzx edx, word [esi + edx*2]
lea edx, [edx + edx*2]
movzx eax, word [eax + edx*4 + 4]
cmp byte [eax + ecx + 4], 0x65
je 0x1003ce18
cmp byte [esp + 0x1c], 0x6f
jne 0x1003ce18
cmp byte [0x1006ab60], 0x74
je 0x1003ceb1
mov eax, dword [esp + 0x18]
cmp ax, 0x33
jle 0x1003cdfe
cmp ax, 0x37
mov al, 4
jl 0x1003ce00
mov al, 8
mov byte [esp + 0x10], al
movzx eax, al
add eax, 0x80
mov dword [esp + 0x400], eax
jmp 0x1003ceb1
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.1001cde0
movzx edx, al
add esp, 4
mov dword [esp + 0x400], edx
jmp 0x1003ceb1
mov eax, dword [esp + 0x1c]
push eax
call fcn.1001cde0
movzx ecx, al
add esp, 4
mov dword [esp + 0x400], ecx
jmp 0x1003ceb1
cmp byte [0x1006ab60], 0x74
jne 0x1003ceb1
mov eax, dword [esp + 0x3fc]
test eax, eax
jle 0x1003ce99
mov edx, dword [ebp + 0x34]
cmp byte [edx + eax - 1], 8
jne 0x1003ce99
mov ecx, dword [ebp + 0x40]
cmp byte [ecx + eax - 1], 1
jne 0x1003ce99
mov edx, dword [ebp + 0x38]
movzx eax, word [edx + eax*2 - 2]
mov ecx, dword [ebp + 4]
lea eax, [eax + eax*2]
movzx edx, word [ecx + eax*4 + 4]
mov eax, dword [ebp + 0x14]
movzx ecx, byte [edx + eax + 3]
mov dword [esp + 0x400], ecx
jmp 0x1003ceb1
mov eax, dword [esp + 0x54]
test eax, eax
je 0x1003ceb1
mov byte [esp + 0x10], 8
mov dword [esp + 0x400], 0x88
cmp byte [0x1006ab58], 1
jne case.0x1003f128.0
mov edx, dword [esp + 0x400]
and edx, 0xf3
add edx, 4
mov byte [esp + 0x10], 4
mov dword [esp + 0x400], edx
jmp case.0x1003f128.0
mov eax, dword [ebp + 0x21c]
push 0
push 0xffffffffffffffff
push esi
push edi
push eax
call fcn.10039eb0
add esp, 0x14
jmp case.0x10041644.69
cmp cl, 0xc0
jne 0x1003cf14
mov al, byte [esp + 0x400]
and al, cl
mov byte [esp + 0x13], al
mov byte [esp + 0x12], al
jmp case.0x1004071b.0
mov cl, byte [esp + eax + 0x80]
lea eax, [esp + eax + 0x80]
and cl, 0xe0
cmp cl, 0x40
mov dword [esp + 0x38], eax
jne 0x1003cff6
mov edx, dword [ebp + 0x21c]
push 0
push 0xffffffffffffffff
push esi
push edi
push edx
call fcn.10039eb0
mov al, byte [esp + 0x2c]
add esp, 0x14
cmp al, 5
jne 0x1003cfac
mov ecx, dword [esp + 0x3fc]
mov eax, dword [ebp + 0x38]
movzx eax, word [eax + ecx*2]
lea edx, [eax + eax*2]
mov eax, dword [ebp + 4]
movzx ecx, byte [eax + edx*4]
lea eax, [eax + edx*4]
mov edx, dword [eax + 8]
cmp byte [0x1006ab58], 1
mov dl, byte [edx + ecx - 1]
jne 0x1003cf7c
mov dl, 0x69
mov eax, esi
lea ecx, [eax + 1]
mov dword [esp + 0x24], ecx
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003cf85
sub eax, dword [esp + 0x24]
mov dword [esp + 0x18], eax
movsx eax, ax
mov byte [eax + esi - 1], dl
mov eax, dword [esp + 0x54]
test eax, eax
jne case.0x10041644.69
jmp 0x10040701
mov ecx, dword [esp + 0x50]
mov dl, byte [esp + ecx + 0x81]
and dl, 0xf0
cmp dl, 0x80
jne case.0x10041644.69
mov al, byte [esp + 0x400]
and al, 0xc
cmp al, 4
jne case.0x10041644.69
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003cfe0
sub eax, edx
movsx eax, ax
mov byte [eax + esi - 1], 0x69
jmp case.0x10041644.69
mov edx, dword [ebp + 0x21c]
push 0
push 0xffffffffffffffff
lea ecx, [esp + 0xb0]
push ecx
push edi
push edx
call fcn.10039eb0
mov ecx, 1
mov dword [0x1006ab40], ecx
mov al, byte [esi]
add esp, 0x14
test cl, al
mov byte [esp + 0x15], 0
je 0x1003d02c
mov dword [esp + 0x48], ecx
test al, 2
je 0x1003d034
mov dword [esp + 0x24], ecx
test al, 4
je 0x1003d03d
mov byte [esp + 0x11], 1
test al, 8
je 0x1003d053
mov ecx, dword [esp + 0x48]
test ecx, ecx
mov byte [esp + 0x16], 1
jne 0x1003d053
mov byte [esp + 0x15], 1
test al, 0x10
je 0x1003d05f
mov dword [esp + 0x24], 0
mov al, byte [esp + 0x18]
cmp al, 3
mov ebx, dword [esp + 0x44]
jne 0x1003d16e
mov al, byte [esp + 0x3c]
cmp al, 2
jne 0x1003d152
mov ecx, dword [esp + 0x3fc]
mov eax, dword [ebp + 0x38]
movzx eax, word [eax + ecx*2]
lea edx, [eax + eax*2]
mov eax, dword [ebp + 4]
movzx ecx, word [eax + edx*4 + 4]
mov edx, dword [ebp + 0x14]
lea eax, [ecx + edx]
cmp byte [eax + 0xa], 0x4e
jne 0x1003d123
add eax, 0xb
push eax
lea eax, [esp + 0xd4]
push 0xffffffffffffffff
push eax
call fcn.100022a0
add esp, 0xc
push 0
push 2
push ebx
push 0
push 0xffffffffffffffff
lea ecx, [esp + 0xe4]
push ecx
mov edx, ecx
push edx
call fcn.1004c100
mov eax, dword [ebp + 0x38]
mov ecx, dword [esp + 0x3fc]
movzx eax, word [eax + ecx*2]
lea edx, [eax + eax*2]
mov eax, dword [ebp + 4]
mov eax, dword [eax + edx*4 + 8]
lea edi, [esp + 0xd0]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [edi]
jne 0x1003d116
test cl, cl
je 0x1003d112
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [edi + 1]
jne 0x1003d116
add eax, 2
add edi, 2
test cl, cl
jne 0x1003d0f2
xor eax, eax
jmp 0x1003d11b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1003d123
mov byte [esp + 0x18], al
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
push 0
push eax
push ebx
push ecx
push 0xffffffffffffffff
push esi
lea edx, [esp + 0xc0]
push edx
call fcn.1004c100
cmp byte [esi], 0
jne 0x1003d191
mov dword [esp + 0x30], 0
jmp case.0x1003f261.33
cmp al, 4
jne 0x1003d123
mov eax, dword [esp + 0x44]
push 0
push 4
push eax
push 0
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0xc0]
push ecx
jmp 0x1003d13b
cmp al, 4
jne 0x1003d123
lea edx, [esp + 0xa8]
push edx
push 0xffffffffffffffff
push esi
mov dword [0x1006ab40], 2
call fcn.100022a0
add esp, 0xc
jmp 0x1003d140
cmp byte [0x1006ab58], 1
jne 0x1003d1be
cmp byte [esp + 0x18], 5
jne 0x1003d1be
cmp byte [esp + 0x44], 5
jne 0x1003d1be
mov eax, esi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003d1b0
sub eax, edx
mov byte [eax + esi - 1], 0x69
mov eax, dword [ebp + 0x38]
mov edi, dword [esp + 0x3fc]
movzx eax, word [eax + edi*2]
mov edx, dword [ebp + 4]
lea ecx, [eax + eax*2]
movzx eax, word [edx + ecx*4 + 4]
mov ecx, dword [ebp + 0x14]
cmp byte [eax + ecx + 7], 0x53
jne 0x1003d21b
cmp byte [esp + 0x18], 5
jne 0x1003d21b
cmp byte [esp + 0x44], 5
jne 0x1003d21b
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003d1f4
sub eax, edx
mov edx, dword [ebp + 0x38]
movzx ecx, word [edx + edi*2]
mov edx, dword [ebp + 4]
lea ecx, [ecx + ecx*2]
lea ecx, [edx + ecx*4]
movzx edx, byte [ecx]
mov ecx, dword [ecx + 8]
mov dl, byte [ecx + edx - 1]
mov byte [eax + esi - 1], dl
mov ecx, dword [esp + 0x3fc]
test ecx, ecx
lea esi, [ecx - 1]
mov byte [0x1006ab58], 0
mov dword [esp + 0x54], esi
jle 0x1003d60d
mov edi, dword [ebp + 0x38]
movzx ecx, word [edi + ecx*2]
mov ebx, dword [ebp + 4]
mov eax, dword [ebp + 0x14]
lea ecx, [ecx + ecx*2]
movzx edx, word [ebx + ecx*4 + 4]
cmp byte [edx + eax + 7], 0x56
mov dword [esp + 0x28], eax
jne 0x1003d593
mov eax, dword [esp + 0x3fc]
dec eax
push eax
push ebp
call fcn.1003a8c0
mov edx, dword [esp + 0x30]
mov esi, eax
movzx eax, word [edi + esi*2]
lea eax, [eax + eax*2]
movzx ecx, word [ebx + eax*4 + 4]
mov al, byte [ecx + edx + 0xb]
add esp, 8
cmp al, 0x61
setne al
inc al
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x48]
dec esi
cmp eax, 1
mov ecx, edx
jne 0x1003d2bf
movzx eax, word [edi + esi*2 + 2]
lea eax, [eax + eax*2]
movzx edx, word [ebx + eax*4 + 4]
lea eax, [edx + ecx]
test byte [eax + 6], 0x10
jne 0x1003d9a8
cmp byte [eax + 0xb], 0x76
je 0x1003d9a8
movzx eax, word [edi + esi*2 + 2]
lea eax, [eax + eax*2]
movzx edx, word [ebx + eax*4 + 4]
lea eax, [edx + ecx]
test byte [eax + 6], 0x10
mov dword [esp + 0x50], eax
je 0x1003d343
mov edx, dword [ebp + 0x34]
mov eax, dword [esp + 0x3fc]
cmp byte [edx + eax - 1], 5
jne 0x1003d343
lea edx, [esi + 1]
dec eax
cmp eax, edx
je 0x1003d343
mov eax, dword [0x10068040]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0xa8]
mov cl, byte [eax]
mov edx, dword [esp + 0x4c]
mov byte [esp + 0x17], cl
cmp cl, byte [edx]
jne 0x1003d332
test cl, cl
je 0x1003d32e
mov cl, byte [eax + 1]
mov byte [esp + 0x17], cl
cmp cl, byte [edx + 1]
jne 0x1003d332
add edx, 2
add eax, 2
test cl, cl
mov dword [esp + 0x4c], edx
jne 0x1003d302
xor eax, eax
jmp 0x1003d337
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1003d9af
mov ecx, dword [esp + 0x28]
test esi, esi
jl 0x1003d3c0
mov eax, dword [ebp + 0x34]
mov dl, byte [eax + esi]
add eax, esi
cmp dl, 8
mov dword [esp + 0x4c], eax
jne 0x1003d37f
movzx eax, word [edi + esi*2]
lea edx, [eax + eax*2]
movzx eax, word [ebx + edx*4 + 4]
mov dl, byte [eax + ecx + 5]
add eax, ecx
cmp dl, 0x70
jne 0x1003d37f
cmp byte [eax + 6], 0x72
jne 0x1003d37f
mov dword [esp + 0x54], esi
jmp 0x1003d3b8
mov edx, dword [ebp + 0x30]
mov eax, dword [edx + esi*4]
mov edx, dword [0x1006be90]
cmp eax, dword [edx + 0x80]
jne 0x1003d3c0
mov eax, dword [esp + 0x4c]
cmp byte [eax - 1], 8
jne 0x1003d3c0
movzx eax, word [edi + esi*2 - 2]
lea edx, [eax + eax*2]
movzx eax, word [ebx + edx*4 + 4]
cmp byte [eax + ecx + 6], 0x72
jne 0x1003d3c0
lea ecx, [esi - 1]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x60], 1
mov edx, dword [ebp + 0x38]
mov eax, dword [esp + 0x3fc]
movzx eax, word [edx + eax*2]
mov edx, dword [ebp + 4]
lea ecx, [eax + eax*2]
lea eax, [edx + ecx*4]
movzx ecx, byte [eax]
mov edx, dword [eax + 8]
mov al, byte [edx + ecx - 1]
mov ecx, dword [esp + 0x38]
mov cl, byte [ecx]
mov byte [esp + 0x1c], al
mov al, cl
and al, 0xc
cmp al, 4
je 0x1003d402
cmp al, 8
je 0x1003d411
cmp al, 0xc
jne 0x1003d435
mov byte [esp + 0x14], 0x65
jmp 0x1003d43d
cmp byte [esp + 0xa8], 0x70
jne 0x1003d41b
test cl, 1
je 0x1003d41b
mov byte [esp + 0x14], 0x61
jmp 0x1003d60d
cmp byte [0x1006ab60], 0x69
jne 0x1003d42b
mov byte [esp + 0x14], 0x65
jmp 0x1003d43d
mov byte [esp + 0x14], 0x74
jmp 0x1003d60d
cmp al, 0x65
jne 0x1003d60d
cmp byte [esp + 0x2f], 1
jne 0x1003d60d
mov edx, dword [esp + 0x50]
xor eax, eax
mov al, byte [edx + 8]
push eax
call fcn.1001e330
mov ecx, dword [ebp + 0x38]
mov byte [esp + 0x7c], al
movzx eax, word [ecx + esi*2 + 2]
lea edx, [eax + eax*2]
mov eax, dword [ebp + 4]
movzx ecx, word [eax + edx*4 + 4]
mov edx, dword [ebp + 0x14]
xor eax, eax
mov al, byte [ecx + edx + 9]
dec al
push eax
call fcn.1001e3a0
mov ecx, dword [ebp + 0x38]
mov byte [esp + 0x58], al
movzx eax, word [ecx + esi*2 + 2]
lea edx, [eax + eax*2]
mov eax, dword [ebp + 4]
movzx ecx, word [eax + edx*4 + 4]
mov edx, dword [ebp + 0x14]
xor eax, eax
mov al, byte [ecx + edx + 3]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x80]
add esp, 8
sub al, 0x30
push 0
push eax
push ecx
mov ecx, dword [0x10068040]
push edx
push 0xffffffffffffffff
lea eax, [esp + 0xbc]
push eax
push ecx
call fcn.1004c100
mov edi, dword [esp + 0x418]
lea edx, [esp + 0xa8]
push edx
push 0xffffffffffffffff
push edi
call fcn.100022a0
push 0x100626c4
push 0xffffffffffffffff
push edi
call fcn.10002250
mov ecx, dword [esp + 0x414]
lea eax, [esi + 2]
add esp, 0x18
cmp eax, ecx
je 0x1003d529
mov ecx, dword [ebp + 0x38]
movzx eax, word [ecx + eax*2]
lea edx, [eax + eax*2]
mov eax, dword [ebp + 4]
mov ecx, dword [eax + edx*4 + 8]
push ecx
push 0xffffffffffffffff
push edi
call fcn.10002250
push 0x100626c4
push 0xffffffffffffffff
push edi
call fcn.10002250
add esp, 0x18
mov edx, dword [ebp + 0x38]
movzx eax, word [edx + esi*2 + 2]
mov ecx, dword [ebp + 4]
lea eax, [eax + eax*2]
movzx edx, word [ecx + eax*4 + 4]
mov eax, dword [ebp + 0x14]
mov al, byte [edx + eax + 3]
cmp al, 0x33
jbe 0x1003d567
cmp al, 0x37
jae 0x1003d567
mov edx, dword [esp + 0x40c]
mov eax, edx
lea ebx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003d557
sub eax, ebx
mov byte [eax + edx - 1], 0x69
jmp 0x1003d56e
mov edx, dword [esp + 0x40c]
push edx
push 0xffffffffffffffff
push edi
call fcn.10002250
lea ecx, [esi + 1]
add esp, 0xc
mov dword [0x1006ab6c], 1
mov word [0x1006ab50], cx
jmp 0x1003d614
mov edx, dword [ebp + 0x34]
lea ecx, [esi + edx]
cmp byte [ecx], 8
mov dword [esp + 0x4c], ecx
jne 0x1003d5c3
movzx ecx, word [edi + esi*2]
lea ecx, [ecx + ecx*2]
movzx edx, word [ebx + ecx*4 + 4]
lea ecx, [edx + eax]
cmp byte [ecx + 5], 0x70
jne 0x1003d5c3
cmp byte [ecx + 6], 0x72
jne 0x1003d5c3
mov dword [esp + 0x54], esi
jmp 0x1003d605
mov ecx, dword [ebp + 0x30]
mov edx, dword [ecx + esi*4]
mov ecx, dword [0x1006be90]
cmp edx, dword [ecx + 0x80]
je 0x1003d5e0
mov edx, dword [esp + 0x4c]
cmp byte [edx], 8
jne 0x1003d60d
mov ecx, dword [esp + 0x4c]
cmp byte [ecx - 1], 8
jne 0x1003d60d
movzx ecx, word [edi + esi*2 - 2]
lea edx, [ecx + ecx*2]
movzx ecx, word [ebx + edx*4 + 4]
cmp byte [ecx + eax + 6], 0x72
jne 0x1003d60d
lea edx, [esi - 1]
mov dword [esp + 0x54], edx
mov dword [esp + 0x60], 1
mov edi, dword [esp + 0x418]
mov eax, dword [ebp + 0x38]
mov ebx, dword [esp + 0x3fc]
movzx eax, word [eax + ebx*2]
mov ecx, dword [ebp + 4]
mov edx, dword [ebp + 0x14]
lea eax, [eax + eax*2]
movzx ecx, word [ecx + eax*4 + 4]
cmp byte [ecx + edx + 4], 0x61
jne 0x1003d7b0
cmp byte [esp + 0x2f], 1
jne 0x1003d7b0
mov ecx, dword [0x10068040]
lea eax, [esp + 0xa8]
mov bl, byte [eax]
mov dl, bl
cmp bl, byte [ecx]
jne 0x1003d677
test dl, dl
je 0x1003d673
mov bl, byte [eax + 1]
mov dl, bl
cmp bl, byte [ecx + 1]
jne 0x1003d677
add eax, 2
add ecx, 2
test dl, dl
jne 0x1003d653
xor eax, eax
jmp 0x1003d67c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1003d7b0
mov eax, dword [ebp + 0x38]
movzx eax, word [eax + esi*2 + 2]
lea edx, [eax + eax*2]
mov eax, dword [ebp + 4]
movzx ecx, word [eax + edx*4 + 4]
mov eax, dword [ebp + 0x14]
xor edx, edx
mov dl, byte [ecx + eax + 8]
push edx
call fcn.1001e330
mov edx, dword [ebp + 4]
mov byte [esp + 0x7c], al
mov eax, dword [ebp + 0x38]
movzx eax, word [eax + esi*2 + 2]
lea ecx, [eax + eax*2]
movzx eax, word [edx + ecx*4 + 4]
mov ecx, dword [ebp + 0x14]
xor edx, edx
mov dl, byte [eax + ecx + 9]
push edx
call fcn.1001e3a0
mov edx, dword [ebp + 4]
mov byte [esp + 0x58], al
mov eax, dword [ebp + 0x38]
movzx eax, word [eax + esi*2 + 2]
mov ebx, dword [esp + 0x414]
lea ecx, [eax + eax*2]
movzx eax, word [edx + ecx*4 + 4]
mov ecx, dword [ebp + 0x14]
xor edx, edx
mov dl, byte [eax + ecx + 3]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x80]
add esp, 8
sub dl, 0x30
push 0
push edx
push eax
push ecx
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0xc0]
push edx
call fcn.1004c100
push ebx
push 0xffffffffffffffff
push edi
call fcn.100022a0
mov eax, dword [ebp + 0x38]
movzx eax, word [eax + esi*2 + 2]
mov edx, dword [ebp + 4]
lea ecx, [eax + eax*2]
movzx eax, word [edx + ecx*4 + 4]
mov ecx, dword [ebp + 0x14]
mov al, byte [eax + ecx + 3]
add esp, 0xc
cmp al, 0x33
jbe 0x1003d765
cmp al, 0x37
jae 0x1003d765
mov eax, edi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003d750
sub eax, edx
mov byte [eax + edi - 1], 0x69
mov byte [0x1006ab58], 1
mov eax, dword [esp + 0x3fc]
lea ebx, [esi + 2]
cmp ebx, eax
je 0x1003d79d
push 0x100626c4
push 0xffffffffffffffff
push edi
call fcn.10002250
mov edx, dword [ebp + 0x38]
movzx eax, word [edx + ebx*2]
mov ecx, dword [ebp + 4]
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*4 + 8]
push edx
push 0xffffffffffffffff
push edi
call fcn.10002250
add esp, 0x18
lea eax, [esi + 1]
mov dword [0x1006ab6c], 1
mov word [0x1006ab50], ax
mov eax, dword [ebp + 0x38]
mov edx, dword [esp + 0x3fc]
movzx edx, word [eax + edx*2]
mov ecx, dword [ebp + 4]
mov ebx, dword [ebp + 0x14]
lea edx, [edx + edx*2]
movzx edx, word [ecx + edx*4 + 4]
add edx, ebx
mov dword [esp + 0x50], edx
mov dl, byte [edx + 0xa]
cmp dl, 0x53
mov byte [esp + 0x17], dl
jne 0x1003d9c8
mov edx, dword [esp + 0x24]
test edx, edx
je 0x1003d7f5
cmp dword [esp + 0x48], 1
jne 0x1003d9c8
mov ecx, dword [ebp + 0x21c]
push 0xffffffffffffffff
lea eax, [esp + 0xac]
push eax
push ecx
call fcn.1005881b
mov edx, dword [ebp + 0x38]
mov eax, dword [esp + 0x408]
movzx eax, word [edx + eax*2]
mov edx, dword [ebp + 4]
lea ecx, [eax + eax*2]
movzx eax, word [edx + ecx*4 + 4]
mov ecx, dword [ebp + 0x14]
add ecx, eax
movzx ax, byte [ecx + 6]
mov dl, al
and dl, 0x80
add esp, 0xc
cmp dl, 0x80
mov byte [esp + 0x37], 1
jne 0x1003d845
mov byte [esp + 0x37], 2
test al, 1
je 0x1003d84e
mov byte [esp + 0x37], 1
cmp byte [esp + 0x5c], 0x63
jne 0x1003d863
lea eax, [esp + 0x5c]
push eax
push 0xffffffffffffffff
lea ecx, [esp + 0x74]
push ecx
jmp 0x1003d885
lea eax, [ecx + 0xb]
lea esi, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x1003d870
sub eax, esi
lea edx, [ecx + eax + 0xc]
push edx
push 0xffffffffffffffff
lea eax, [esp + 0x74]
push eax
call fcn.100022a0
lea eax, [esp + 0x78]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003d894
sub eax, edx
mov edx, eax
cmp dx, 4
jne 0x1003d8b6
cmp byte [esp + 0x6d], 0x69
jne 0x1003d8b6
mov ecx, dword [ebp + 0x21c]
mov byte [ecx + 3], 1
cmp byte [esp + 0x6c], 0x6c
je 0x1003d8d4
cmp dx, 3
jle 0x1003d8cd
movsx eax, dx
cmp byte [esp + eax + 0x6a], 0x6c
je 0x1003d8d4
mov edi, 4
jmp 0x1003d8d9
mov edi, 3
mov ecx, dword [ebp + 0x21c]
mov al, byte [ecx + 0xc]
and al, 0xe0
xor esi, esi
cmp al, 0x80
jne 0x1003d8ef
mov esi, 5
movsx eax, si
mov al, byte [eax + ecx + 0xc]
mov bl, al
and bl, 0xe0
cmp bl, 0xc0
jne 0x1003d90d
and al, 1
dec al
neg al
sbb eax, eax
inc eax
lea esi, [esi + eax*2 + 5]
mov byte [ecx + 2], dl
lea ecx, [esp + 0xa8]
push ecx
lea edx, [esp + 0x2f4]
push 0xffffffffffffffff
push edx
call fcn.100022a0
mov eax, dword [ebp + 0x21c]
push 0xffffffffffffffff
lea ecx, [esp + 0x300]
push ecx
push edi
movsx edx, si
push 0xffffffffffffffff
lea ecx, [edx + eax + 0xc]
push ecx
push 0
push eax
call fcn.10020c70
add esp, 0x28
cmp ax, 1
je 0x1003d969
cmp byte [esp + 0x6c], 0x6c
jne case.0x1003f261.33
cmp dword [esp + 0x48], 1
jne case.0x1003f261.33
mov edi, dword [esp + 0x40c]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003d975
sub eax, edx
mov edx, eax
movzx eax, byte [esp + 0x18]
sub eax, 3
je 0x1003e777
dec eax
je 0x1003e759
dec eax
jne 0x1003e81d
mov al, byte [esp + 0x44]
test al, al
jne 0x1003e718
mov byte [0x1006ab58], 2
mov ecx, dword [esp + 0x3f0]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
call fcn.10057644
add esp, 0x3e4
ret
mov edx, dword [esp + 0x48]
test edx, edx
jne 0x1003dddd
cmp byte [esp + 0x16], 1
je 0x1003dddd
cmp byte [esp + 0x11], 1
je 0x1003dddd
mov edx, dword [esp + 0x24]
test edx, edx
je 0x1003dc42
cmp byte [esp + 0x17], 0x53
je 0x1003dc42
mov dl, byte [esp + 0x2f]
test dl, dl
je 0x1003db85
movzx eax, word [eax + esi*2 + 2]
lea edx, [eax + eax*2]
movzx eax, word [ecx + edx*4 + 4]
xor ecx, ecx
mov cl, byte [eax + ebx + 8]
push ecx
call fcn.1001e330
mov edx, dword [ebp + 0x38]
mov ecx, dword [ebp + 4]
mov byte [esp + 0x28], al
movzx eax, word [edx + esi*2 + 2]
lea eax, [eax + eax*2]
movzx edx, word [ecx + eax*4 + 4]
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov cl, byte [edx + eax + 9]
dec cl
push ecx
call fcn.1001e3a0
mov edx, dword [ebp + 0x38]
mov ecx, dword [ebp + 4]
mov bl, byte [esp + 0x1c]
mov byte [esp + 0x6c], al
movzx eax, word [edx + esi*2 + 2]
lea eax, [eax + eax*2]
movzx edx, word [ecx + eax*4 + 4]
mov eax, dword [ebp + 0x14]
mov cl, byte [edx + eax + 3]
add esp, 8
sub cl, 0x30
cmp bl, 0x61
mov byte [esp + 0x3c], cl
push 0
jne 0x1003daa2
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x28]
push edx
push eax
mov eax, dword [str.avere]
push ecx
push 0xffffffffffffffff
lea edx, [esp + 0xbc]
push edx
push eax
jmp 0x1003dac2
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x28]
push ecx
push edx
mov edx, dword [0x10068040]
push eax
push 0xffffffffffffffff
lea ecx, [esp + 0xbc]
push ecx
push edx
call fcn.1004c100
lea eax, [esp + 0xa8]
push eax
push 0xffffffffffffffff
push edi
call fcn.100022a0
push 0x100626c4
push 0xffffffffffffffff
push edi
call fcn.10002250
mov ecx, dword [esp + 0x414]
lea eax, [esi + 2]
add esp, 0x18
cmp eax, ecx
je 0x1003db1f
mov ecx, dword [ebp + 0x38]
movzx eax, word [ecx + eax*2]
lea edx, [eax + eax*2]
mov eax, dword [ebp + 4]
mov ecx, dword [eax + edx*4 + 8]
push ecx
push 0xffffffffffffffff
push edi
call fcn.10002250
push 0x100626c4
push 0xffffffffffffffff
push edi
call fcn.10002250
add esp, 0x18
mov edx, dword [esp + 0x40c]
push edx
push 0xffffffffffffffff
push edi
call fcn.10002250
add esp, 0xc
cmp bl, 0x61
je 0x1003db76
mov eax, dword [esp + 0x400]
sub eax, 0x44
je 0x1003db5b
sub eax, 4
je 0x1003db54
sub eax, 0x3c
jne 0x1003db60
mov byte [esp + 0x1c], 0x69
jmp 0x1003db60
mov byte [esp + 0x1c], 0x61
jmp 0x1003db60
mov byte [esp + 0x1c], 0x65
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003db65
mov cl, byte [esp + 0x1c]
sub eax, edx
mov byte [eax + edi - 1], cl
lea edx, [esi + 1]
mov word [0x1006ab50], dx
jmp 0x1003dbf9
mov edx, dword [esp + 0x50]
cmp byte [edx + 8], 0x47
jne 0x1003dc03
mov ebx, dword [ebp + 0x34]
mov edx, dword [esp + 0x3fc]
cmp byte [ebx + edx - 1], 5
jne 0x1003dc03
mov ebx, dword [ebp + 0x30]
mov edx, dword [ebx + edx*4 - 4]
mov ebx, dword [0x1006be90]
cmp edx, dword [ebx + 0x68]
jne 0x1003dc03
mov edx, dword [esp + 0x3fc]
movzx eax, word [eax + edx*2 - 2]
lea eax, [eax + eax*2]
mov ecx, dword [ecx + eax*4 + 8]
push ecx
push 0xffffffffffffffff
push edi
call fcn.100022a0
push 0x100626c4
push 0xffffffffffffffff
push edi
call fcn.10002250
mov edx, dword [esp + 0x424]
push edx
push 0xffffffffffffffff
push edi
call fcn.10002250
add esp, 0x24
dec word [0x1006ab50]
mov dword [0x1006ab6c], 1
mov ecx, dword [esp + 0x54]
lea eax, [esi - 1]
cmp ecx, eax
jne 0x1003dc3b
mov eax, dword [0x1006ab6c]
test eax, eax
jne 0x1003dc34
mov ecx, dword [esp + 0x40c]
push ecx
push 0xffffffffffffffff
push edi
call fcn.100022a0
add esp, 0xc
mov dword [0x1006ab6c], 1
dec word [0x1006ab50]
dec word [0x1006ab50]
cmp byte [esp + 0x14], 0x61
jne 0x1003ddaf
cmp byte [esp + 0x2f], 2
jne 0x1003ddaf
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x1003ddbb
mov edx, dword [ebp + 0x38]
movzx eax, word [edx + esi*2 + 2]
mov ecx, dword [ebp + 4]
lea eax, [eax + eax*2]
movzx edx, word [ecx + eax*4 + 4]
mov eax, dword [ebp + 0x14]
mov cl, byte [eax + edx + 6]
add eax, edx
test cl, 0x10
jne 0x1003ddbb
cmp byte [eax + 0xb], 0x76
je 0x1003ddbb
xor ecx, ecx
mov cl, byte [eax + 8]
push ecx
call fcn.1001e330
mov edx, dword [ebp + 0x38]
mov ecx, dword [ebp + 4]
mov byte [esp + 0x7c], al
movzx eax, word [edx + esi*2 + 2]
lea eax, [eax + eax*2]
movzx edx, word [ecx + eax*4 + 4]
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov cl, byte [edx + eax + 9]
dec cl
push ecx
call fcn.1001e3a0
mov edx, dword [ebp + 0x38]
mov ecx, dword [ebp + 4]
mov byte [esp + 0x58], al
movzx eax, word [edx + esi*2 + 2]
lea eax, [eax + eax*2]
movzx edx, word [ecx + eax*4 + 4]
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov cl, byte [edx + eax + 3]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x80]
add esp, 8
sub cl, 0x30
push 0
push ecx
push edx
mov edx, dword [str.avere]
push eax
push 0xffffffffffffffff
lea ecx, [esp + 0xbc]
push ecx
push edx
call fcn.1004c100
lea eax, [esp + 0xa8]
push eax
push 0xffffffffffffffff
push edi
call fcn.100022a0
push 0x100626c4
push 0xffffffffffffffff
push edi
call fcn.10002250
mov ecx, dword [esp + 0x414]
lea ebx, [esi + 2]
movsx eax, bx
add esp, 0x18
cmp eax, ecx
jge 0x1003dd85
mov ecx, dword [ebp + 0x34]
cmp byte [eax + ecx], 5
je 0x1003dd76
mov edx, dword [ebp + 0x38]
movzx eax, word [edx + eax*2]
mov ecx, dword [ebp + 4]
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*4 + 8]
push edx
push 0xffffffffffffffff
push edi
call fcn.10002250
push 0x100626c4
push 0xffffffffffffffff
push edi
call fcn.10002250
add esp, 0x18
mov ecx, dword [esp + 0x3fc]
inc ebx
movsx eax, bx
cmp eax, ecx
jl 0x1003dd43
mov eax, dword [esp + 0x40c]
push eax
push 0xffffffffffffffff
push edi
call fcn.10002250
add esp, 0xc
inc esi
mov dword [0x1006ab6c], 1
mov word [0x1006ab50], si
jmp case.0x1003f261.33
mov al, byte [esp + 0x2f]
test al, al
je case.0x1003f261.33
mov edx, dword [esp + 0x40c]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003ddc7
mov cl, byte [esp + 0x1c]
sub eax, esi
mov byte [eax + edx - 1], cl
jmp case.0x1003f261.33
mov eax, dword [esp + 0x48]
test eax, eax
mov byte [esp + 0x6c], 0
je 0x1003de30
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0x70]
push 0xffffffffffffffff
push eax
call fcn.100022a0
mov eax, dword [esp + 0x6c]
add esp, 0xc
cmp eax, 1
jne 0x1003de30
cmp byte [esp + 0x11], 1
jne 0x1003de30
cmp byte [esp + 0x5c], 0x73
jne 0x1003de30
mov ecx, dword [ebp + 0x38]
mov edx, dword [esp + 0x54]
movzx eax, word [ecx + edx*2]
mov ecx, dword [ebp + 4]
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*4 + 8]
mov al, byte [edx]
mov byte [esp + 0x6c], al
cmp byte [esp + 0x11], 1
mov byte [esp + 0x78], 0
jne 0x1003de53
lea ecx, [esp + 0x68]
push ecx
lea edx, [esp + 0x7c]
push 0xffffffffffffffff
push edx
call fcn.100022a0
mov bl, byte [esp + 0x22]
jmp 0x1003de6d
mov bl, byte [esp + 0x16]
cmp bl, 1
jne 0x1003de70
push 0x1006294c
lea eax, [esp + 0x7c]
push 0xffffffffffffffff
push eax
call fcn.100022a0
add esp, 0xc
mov al, byte [esp + 0x18]
cmp al, 4
je 0x1003e4fb
cmp al, 6
je 0x1003e5bb
cmp al, 5
jne 0x1003de96
mov al, byte [esp + 0x2f]
test al, al
je 0x1003e6c5
jmp 0x1003ded8
cmp al, 3
jne 0x1003ded4
cmp byte [esp + 0x3c], 2
setne al
lea eax, [eax + eax + 0x74]
mov byte [esp + 0x6c], al
mov al, byte [esp + 0x78]
test al, al
je 0x1003d969
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x70]
push 0xffffffffffffffff
push edx
mov byte [esp + 0x79], 0x65
call fcn.10002250
add esp, 0xc
jmp 0x1003d969
mov al, byte [esp + 0x2f]
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x1003e067
mov edx, dword [esp + 0x54]
mov ecx, esi
sub ecx, edx
test ecx, ecx
jg 0x1003e067
test al, al
je 0x1003df26
mov al, byte [esp + 0x11]
test al, al
jne 0x1003df26
test bl, bl
jne 0x1003df26
mov esi, dword [esp + 0x40c]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003df10
sub eax, edx
mov dl, byte [esp + 0x1c]
mov byte [eax + esi - 1], dl
jmp case.0x1003f261.33
cmp bl, 1
je 0x1003df3d
cmp byte [esp + 0x11], 1
jne case.0x1003f261.33
mov edi, dword [esp + 0x418]
mov al, byte [esp + 0x11]
test al, al
mov ebx, dword [esp + 0x40c]
jne 0x1003df6a
mov al, byte [esp + 0x16]
test al, al
jne 0x1003df6a
movzx cx, byte [esp + 0x3c]
push 0xffffffffffffffff
lea eax, [esp + 0x70]
push eax
push ecx
call fcn.1003a680
add esp, 0xc
mov al, byte [esp + 0x78]
test al, al
mov byte [esp + 0x6e], 0x20
mov byte [esp + 0x6f], 0
je 0x1003dfc4
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x1003df97
lea edx, [esp + 0x78]
push edx
lea eax, [esp + 0x70]
push 0xffffffffffffffff
push eax
call fcn.100022a0
jmp 0x1003dfad
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x70]
push 0xffffffffffffffff
push edx
mov byte [esp + 0x79], 0x65
call fcn.10002250
add esp, 0xc
push 0x100626c4
lea eax, [esp + 0x70]
push 0xffffffffffffffff
push eax
call fcn.10002250
add esp, 0xc
lea ecx, [esp + 0x6c]
push ecx
push 0xffffffffffffffff
push edi
call fcn.100022a0
mov al, byte [esp + 0x3b]
add esp, 0xc
test al, al
je 0x1003e045
lea eax, [esp + 0x6c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003dfe7
sub eax, edx
cmp eax, 3
jbe 0x1003e045
mov edx, dword [ebp + 0x38]
movzx eax, word [edx + esi*2 + 2]
mov ecx, dword [ebp + 4]
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*4 + 8]
push edx
push 0xffffffffffffffff
push edi
call fcn.10002250
mov al, byte [esp + 0x1d]
add esp, 0xc
cmp al, 1
jne 0x1003e02e
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003e020
sub eax, edx
mov byte [eax + ebx - 1], 0x61
push 0x100626c4
push 0xffffffffffffffff
push edi
call fcn.10002250
add esp, 0xc
dec word [0x1006ab50]
push ebx
push 0xffffffffffffffff
push edi
call fcn.10002250
add esp, 0xc
dec word [0x1006ab50]
mov dword [0x1006ab6c], 1
jmp case.0x1003f261.33
test al, al
je 0x1003e3f5
mov eax, dword [ebp + 0x38]
movzx eax, word [eax + esi*2 + 2]
mov edx, dword [ebp + 4]
lea ecx, [eax + eax*2]
movzx eax, word [edx + ecx*4 + 4]
mov ecx, dword [ebp + 0x14]
xor edx, edx
mov dl, byte [eax + ecx + 8]
mov dword [esp + 0x24], 0
push edx
call fcn.1001e330
mov edx, dword [ebp + 4]
mov byte [esp + 0x64], al
mov eax, dword [ebp + 0x38]
movzx eax, word [eax + esi*2 + 2]
lea ecx, [eax + eax*2]
movzx eax, word [edx + ecx*4 + 4]
mov ecx, dword [ebp + 0x14]
xor edx, edx
mov dl, byte [eax + ecx + 9]
dec dl
push edx
call fcn.1001e3a0
mov edx, dword [ebp + 4]
mov byte [esp + 0x6c], al
mov eax, dword [ebp + 0x38]
movzx eax, word [eax + esi*2 + 2]
lea ecx, [eax + eax*2]
movzx eax, word [edx + ecx*4 + 4]
mov ecx, dword [ebp + 0x14]
mov bl, byte [eax + ecx + 3]
mov al, byte [esp + 0x1c]
sub bl, 0x30
add esp, 8
cmp al, 0x61
mov byte [esp + 0x3c], bl
jne 0x1003e166
cmp byte [esp + 0x5c], 0x63
je 0x1003e12a
cmp byte [esp + 0x11], 1
jne 0x1003e10a
cmp byte [esp + 0x2f], 1
je 0x1003e12a
cmp byte [esp + 0x15], 1
jne 0x1003e166
test esi, esi
jle 0x1003e166
mov edx, dword [ebp + 0x30]
mov eax, dword [edx + esi*4 - 4]
mov ecx, dword [0x1006be90]
cmp eax, dword [ecx + 0x80]
jne 0x1003e166
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
push 0
push edx
push eax
mov eax, dword [str.avere]
push ecx
push 0xffffffffffffffff
lea edx, [esp + 0xbc]
push edx
push eax
call fcn.1004c100
cmp byte [esp + 0x79], 0x61
mov dword [esp + 0x24], 1
jne 0x1003e18d
mov byte [esp + 0x79], 0x27
jmp 0x1003e18d
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
push 0
push ecx
push edx
mov edx, dword [0x10068040]
push eax
push 0xffffffffffffffff
lea ecx, [esp + 0xbc]
push ecx
push edx
call fcn.1004c100
cmp byte [esp + 0x15], 1
je 0x1003e19b
cmp byte [esp + 0x11], 1
jne 0x1003e1bc
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x1003e1bc
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x70]
push 0xffffffffffffffff
push ecx
call fcn.100022a0
add esp, 0xc
jmp 0x1003e218
cmp byte [esp + 0x5c], 0x63
je 0x1003e1e3
mov al, byte [esp + 0x60]
cmp al, 6
je 0x1003e1e3
cmp al, 4
je 0x1003e1e3
movzx ax, bl
push 0xffffffffffffffff
lea edx, [esp + 0x70]
push edx
push eax
call fcn.1003a680
add esp, 0xc
mov al, byte [esp + 0x78]
test al, al
je 0x1003e218
push 0x100626c4
lea ecx, [esp + 0x70]
push 0xffffffffffffffff
push ecx
mov byte [esp + 0x79], 0x65
call fcn.10002250
lea edx, [esp + 0x84]
push edx
lea eax, [esp + 0x7c]
push 0xffffffffffffffff
push eax
call fcn.10002250
add esp, 0x18
mov al, byte [esp + 0x60]
cmp al, 6
je 0x1003e288
cmp al, 4
je 0x1003e288
lea ecx, [esp + 0x6c]
push ecx
push 0xffffffffffffffff
push edi
call fcn.100022a0
lea eax, [esp + 0x78]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003e243
sub eax, edx
cmp byte [esp + eax + 0x6b], 0x27
je 0x1003e263
push 0x100626c4
push 0xffffffffffffffff
push edi
call fcn.10002250
add esp, 0xc
lea edx, [esp + 0xa8]
push edx
push 0xffffffffffffffff
push edi
call fcn.10002250
push 0x100626c4
push 0xffffffffffffffff
push edi
call fcn.10002250
add esp, 0x18
jmp 0x1003e2fd
lea eax, [esp + 0xa8]
push eax
push 0xffffffffffffffff
push edi
call fcn.100022a0
mov al, byte [esp + 0x6c]
add esp, 0xc
cmp al, 6
jne 0x1003e2b5
lea ecx, [esp + 0x6c]
push ecx
push 0xffffffffffffffff
push edi
call fcn.10002250
add esp, 0xc
jmp 0x1003e2ed
lea eax, [esp + 0xa8]
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003e2c0
sub eax, edx
movsx eax, ax
cmp byte [esp + eax + 0xa5], 0x72
lea edx, [eax + edi - 2]
je 0x1003e2de
lea edx, [eax + edi - 1]
mov ax, word [esp + 0x6c]
mov word [edx], ax
mov cl, byte [esp + 0x6e]
mov byte [edx + 2], cl
push 0x100626c4
push 0xffffffffffffffff
push edi
call fcn.10002250
add esp, 0xc
mov ecx, dword [esp + 0x3fc]
lea ebx, [esi + 2]
movsx eax, bx
cmp eax, ecx
jge 0x1003e352
mov edi, edi
mov edx, dword [ebp + 0x34]
cmp byte [eax + edx], 5
je 0x1003e343
mov ecx, dword [ebp + 0x38]
movzx eax, word [ecx + eax*2]
lea edx, [eax + eax*2]
mov eax, dword [ebp + 4]
mov ecx, dword [eax + edx*4 + 8]
push ecx
push 0xffffffffffffffff
push edi
call fcn.10002250
push 0x100626c4
push 0xffffffffffffffff
push edi
call fcn.10002250
add esp, 0x18
mov ecx, dword [esp + 0x3fc]
inc ebx
movsx eax, bx
cmp eax, ecx
jl 0x1003e310
mov edx, dword [esp + 0x40c]
push edx
push 0xffffffffffffffff
push edi
call fcn.10002250
mov eax, dword [esp + 0x30]
mov bl, byte [esp + 0x28]
add esp, 0xc
test eax, eax
jne 0x1003e38c
test bl, bl
je 0x1003e37c
cmp byte [esp + 0x2f], 1
jne 0x1003e38c
mov al, byte [esp + 0x3c]
cmp al, 3
jbe 0x1003e38a
cmp al, 7
mov bl, 0x69
jb 0x1003e38c
mov bl, 0x6f
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003e391
sub eax, edx
mov byte [eax + edi - 1], bl
cmp byte [esp + 0x11], 1
jne 0x1003e3c6
cmp byte [esp + 0x5c], 0x63
je 0x1003e3b3
cmp byte [esp + 0x78], 0x6c
jne 0x1003e3c6
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003e3b8
sub eax, edx
mov byte [eax + edi - 1], 0x61
mov ecx, dword [esp + 0x54]
lea eax, [esi + 1]
sub esi, ecx
test esi, esi
mov dword [0x1006ab6c], 1
mov word [0x1006ab50], ax
jle case.0x1003f261.33
add word [0x1006ab50], 0xfffe
jmp case.0x1003f261.33
mov eax, dword [esp + 0x48]
test eax, eax
je 0x1003e444
cmp byte [esp + 0x5c], 0x63
je 0x1003e41a
movzx dx, byte [esp + 0x3c]
push 0xffffffffffffffff
lea ecx, [esp + 0x70]
push ecx
push edx
call fcn.1003a680
add esp, 0xc
mov al, byte [esp + 0x78]
test al, al
mov byte [esp + 0x6e], 0x20
mov byte [esp + 0x6f], 0
je 0x1003e469
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x70]
push 0xffffffffffffffff
push ecx
mov byte [esp + 0x79], 0x65
call fcn.10002250
jmp 0x1003e455
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x70]
push 0xffffffffffffffff
push ecx
call fcn.100022a0
push 0x100626c4
lea edx, [esp + 0x7c]
push 0xffffffffffffffff
push edx
call fcn.10002250
add esp, 0x18
mov edi, dword [esp + 0x40c]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003e475
sub eax, edx
mov edx, eax
lea eax, [esp + 0x6c]
lea ebx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003e487
sub eax, ebx
inc edx
push edx
add eax, edi
push edi
push eax
call fcn.1005881b
lea eax, [esp + 0x78]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003e4a5
sub eax, edx
push eax
lea eax, [esp + 0x70]
push eax
push edi
call fcn.1005881b
mov edi, dword [esp + 0x60]
sub esi, edi
add esp, 0xc
test esi, esi
jle case.0x1003f261.33
mov ecx, dword [esp + 0x40c]
mov edx, dword [esp + 0x418]
push ecx
push 0xffffffffffffffff
push edx
call fcn.100022a0
add esp, 0xc
mov dword [0x1006ab6c], 1
mov word [0x1006ab50], di
jmp case.0x1003f261.33
cmp byte [esp + 0x6d], 0x69
jne 0x1003e6c5
mov eax, dword [esp + 0x3fc]
dec eax
test eax, eax
jl 0x1003e6c5
jle 0x1003e54e
mov ecx, dword [ebp + 0x3c]
cmp byte [eax + ecx], 0
jne 0x1003e54e
mov edx, dword [ebp + 0x34]
mov cl, byte [eax + edx]
cmp cl, 7
je 0x1003e54d
cmp cl, 2
jne 0x1003e54e
mov ecx, dword [ebp + 0x38]
movzx ecx, word [ecx + eax*2]
lea edx, [ecx + ecx*2]
mov ecx, dword [ebp + 4]
movzx edx, word [ecx + edx*4 + 4]
mov ecx, dword [ebp + 0x14]
cmp byte [edx + ecx + 4], 0x73
jne 0x1003e54e
dec eax
mov edx, dword [ebp + 0x38]
movzx ecx, word [edx + eax*2]
mov edx, dword [ebp + 4]
mov esi, dword [ebp + 0x3c]
mov bl, byte [eax + esi]
lea ecx, [ecx + ecx*2]
movzx ecx, word [edx + ecx*4 + 4]
mov edx, dword [ebp + 0x14]
add ecx, edx
test bl, bl
mov dl, byte [ecx + 8]
jne 0x1003e6c5
mov esi, dword [ebp + 0x34]
cmp byte [eax + esi], 5
jne 0x1003e6c5
cmp dl, 0x46
je 0x1003e6c5
cmp dl, 0x47
je 0x1003e6c5
cmp dl, 0x50
je 0x1003e6c5
movzx cx, byte [ecx + 3]
push 0xffffffffffffffff
lea eax, [esp + 0x70]
push eax
sub ecx, 0x30
push ecx
call fcn.1003a680
add esp, 0xc
jmp 0x1003e6c5
cmp byte [esp + 0x6d], 0x69
jne 0x1003e6c5
mov ecx, dword [esp + 0x3fc]
dec ecx
test ecx, ecx
jle 0x1003e6c5
mov edx, dword [ebp + 0x38]
movzx eax, word [edx + ecx*2]
mov edi, dword [ebp + 4]
lea esi, [edx + ecx*2]
mov edx, dword [ebp + 0x14]
lea eax, [eax + eax*2]
movzx eax, word [edi + eax*4 + 4]
mov bl, byte [eax + edx + 8]
add eax, edx
mov byte [esp + 0x17], bl
mov ebx, dword [ebp + 0x3c]
cmp byte [ecx + ebx], 0
jne 0x1003e6c5
mov ebx, dword [ebp + 0x34]
add ebx, ecx
cmp byte [ebx], 5
mov dword [esp + 0x50], ebx
jne 0x1003e6c5
mov bl, byte [esp + 0x17]
cmp bl, 0x46
je 0x1003e6c5
cmp bl, 0x47
je 0x1003e6c5
cmp bl, 0x50
je 0x1003e6c5
mov ebx, dword [ebp + 0x30]
mov ecx, dword [ebx + ecx*4]
mov ebx, dword [0x1006be90]
cmp ecx, dword [ebx + 0x68]
jne 0x1003e6c5
movzx ax, byte [eax + 3]
push 0xffffffffffffffff
lea ecx, [esp + 0x70]
push ecx
sub eax, 0x30
push eax
call fcn.1003a680
mov ecx, dword [esp + 0x5c]
mov al, byte [ecx - 1]
add esp, 0xc
cmp al, 8
jne 0x1003e6c5
movzx eax, word [esi - 2]
lea eax, [eax + eax*2]
movzx ecx, word [edi + eax*4 + 4]
lea edi, [edi + eax*4]
cmp byte [ecx + edx + 6], 0x72
jne 0x1003e6c5
mov esi, dword [edi + 8]
lea eax, [esp + 0x6c]
nop
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x1003e6b8
test cl, cl
je 0x1003e6b4
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x1003e6b8
add eax, 2
add esi, 2
test cl, cl
jne 0x1003e690
xor eax, eax
jmp 0x1003e6bd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1003e6c5
mov byte [esp + 0x6c], al
mov al, byte [esp + 0x78]
test al, al
je 0x1003e6e6
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x70]
push 0xffffffffffffffff
push ecx
mov byte [esp + 0x79], 0x65
call fcn.10002250
add esp, 0xc
cmp byte [esp + 0x18], 5
jne 0x1003d969
cmp byte [esp + 0x44], 5
jne 0x1003d969
mov eax, dword [esp + 0x40c]
lea edx, [esp + 0x6c]
push edx
push 0xffffffffffffffff
push eax
call fcn.10002250
add esp, 0xc
jmp case.0x1003f261.33
lea eax, [esp + 0x6c]
lea esi, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003e720
mov ecx, dword [ebp + 0x38]
sub eax, esi
mov esi, dword [esp + 0x3fc]
movzx ecx, word [ecx + esi*2]
mov esi, dword [ebp + 4]
lea ecx, [ecx + ecx*2]
lea ecx, [esi + ecx*4]
movzx esi, byte [ecx]
mov ecx, dword [ecx + 8]
add ecx, esi
sub ecx, eax
mov al, byte [ecx - 1]
movsx edx, dx
mov byte [edx + edi - 1], al
jmp 0x1003e81d
movsx ecx, dx
lea eax, [ecx + edi]
cmp byte [eax - 3], 0x72
jne 0x1003e76e
mov byte [eax - 2], 0
jmp 0x1003e81d
mov byte [eax - 1], 0
jmp 0x1003e81d
cmp dx, 4
jg 0x1003e7e9
movsx eax, dx
mov cl, byte [eax + edi - 1]
add eax, edi
cmp cl, 0x69
jne 0x1003e799
cmp byte [eax - 2], 0x61
jne 0x1003e799
mov byte [eax - 1], 0
cmp byte [eax - 1], 0xec
jne 0x1003e7a3
mov byte [eax - 1], 0x69
cmp byte [esp + 0x6c], 0x67
je 0x1003e7e9
mov cl, byte [edi + 1]
mov bl, byte [edi + 2]
cmp cl, bl
je 0x1003e7e9
cmp dx, 4
jne 0x1003e7c7
movzx edx, bl
mov cl, byte [edx + 0x1006bac0]
test cl, cl
je 0x1003e7e9
mov dx, word [eax - 2]
mov ecx, 0x10062948
cmp dx, word [ecx]
je 0x1003e7e9
push 5
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x75]
push ecx
call fcn.1005881b
add esp, 0xc
mov eax, dword [esp + 0x48]
test eax, eax
je 0x1003e81d
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0x70]
push 0xffffffffffffffff
push eax
call fcn.100022a0
mov al, byte [esp + 0x48]
add esp, 0xc
cmp al, 2
jne 0x1003e814
mov byte [esp + 0x6c], 0x74
jmp 0x1003e81d
cmp al, 5
jne 0x1003e81d
mov byte [esp + 0x6c], 0x76
cmp byte [esp + 0x18], 3
mov bl, 0x6e
je 0x1003e8c0
mov eax, dword [esp + 0x48]
test eax, eax
je 0x1003e84d
cmp byte [esp + 0x37], 2
jne 0x1003e84d
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x70]
push 0xffffffffffffffff
push edx
call fcn.100022a0
add esp, 0xc
mov al, byte [esp + 0x11]
cmp al, 1
je 0x1003e860
cmp byte [esp + 0x16], 1
jne 0x1003e8c0
cmp byte [esp + 0x6c], 0x6c
je 0x1003e8c0
cmp byte [esp + 0x6d], 0x69
jne 0x1003e8c0
mov cl, byte [esp + 0x6e]
test cl, cl
jne 0x1003e8c0
cmp al, 1
lea eax, [esp + 0x6d]
jne 0x1003e8ab
push 1
push 0x10062944
push eax
call fcn.1005881b
push 3
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x82]
push edx
call fcn.1005881b
add esp, 0x18
jmp 0x1003e9a5
push 4
push 0x1006293c
push eax
call fcn.1005881b
add esp, 0xc
jmp 0x1003e9a5
mov eax, dword [esp + 0x48]
test eax, eax
je 0x1003e9a5
cmp byte [esp + 0x37], 1
jne 0x1003e9a5
lea eax, [esp + 0x6c]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003e8e0
sub eax, edx
cmp ax, 2
jne 0x1003e919
cmp byte [esp + 0x6c], bl
je 0x1003e92b
movsx eax, ax
mov cl, byte [esp + eax + 0x6a]
cmp cl, 0x6c
lea eax, [esp + eax + 0x6c]
jne 0x1003e9a5
cmp byte [esp + 0x11], 1
jne 0x1003e95b
mov byte [eax - 1], 0x61
jmp 0x1003e9a5
cmp ax, 4
jne 0x1003e925
cmp byte [esp + 0x6e], bl
je 0x1003e92b
cmp ax, 3
jne 0x1003e8f5
mov cl, byte [esp + 0x15]
test cl, cl
jne 0x1003e9a5
cmp ax, 2
mov byte [esp + 0x6d], 0x69
mov byte [esp + 0x6e], 0
je 0x1003e951
cmp ax, 3
jne 0x1003e9a5
mov ecx, dword [esp + 0x3fc]
push ecx
jmp 0x1003e998
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x1003e97d
cmp byte [eax - 1], 0x61
jne 0x1003e97d
mov al, byte [esp + 0x16]
test al, al
jne 0x1003e97d
mov byte [esp + 0x6d], 0x69
mov byte [esp + 0x6e], 0
jmp 0x1003e990
mov byte [esp + 0x6d], 0x65
mov byte [esp + 0x6e], bl
mov byte [esp + 0x6f], 0x65
mov byte [esp + 0x70], 0
mov edx, dword [esp + 0x3fc]
push edx
push ebp
call fcn.1003a6e0
add esp, 8
mov byte [esp + 0x6c], al
cmp byte [esp + 0x6c], 0x6c
jne 0x1003e9bc
cmp byte [esp + 0x16], 1
jne 0x1003e9bc
mov byte [esp + 0x6c], bl
mov byte [esp + 0x6d], 0x65
lea eax, [esp + 0x6c]
push eax
push 0xffffffffffffffff
push edi
call fcn.10002250
add esp, 0xc
jmp case.0x1003f261.33
cmp ax, 8
jne 0x1003ea2e
cmp dword [esp + 0x404], 6
jne 0x1003ea04
mov ecx, dword [ebp + 0x21c]
push esi
push ecx
call fcn.1005881b
mov ebx, dword [esp + 0x50]
mov edi, eax
add esp, 8
mov dword [esp + 0x40], edi
jmp case.0x1003f0f4.8
movzx edi, word [esp + 0x408]
mov edx, dword [ebp + 0x21c]
push 0
push 0xffffffffffffffff
push esi
push edi
push edx
mov dword [esp + 0x54], edi
call fcn.10039eb0
mov ebx, dword [esp + 0x5c]
add esp, 0x14
jmp case.0x1003f0f4.8
cmp ax, 7
jne 0x1003ed16
movzx ebx, word [esp + 0x408]
movzx ax, byte [esi + 3]
mov ecx, dword [ebp + 0x21c]
push 0
push 0xffffffffffffffff
push esi
push ebx
push ecx
mov word [esp + 0x3c], ax
call fcn.10039eb0
mov eax, esi
add esp, 0x14
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003ea64
sub eax, edx
mov dword [esp + 0x50], eax
cmp dword [0x1006ab70], ebx
je 0x1003eb9a
xor edi, edi
push edi
push ebx
push esi
push ebp
call fcn.10039d20
mov edx, dword [0x1006c010]
lea ecx, [edx + eax*2]
mov edx, dword [0x1006bbc4]
add esp, 0xc
add ecx, eax
push ecx
push edx
call fcn.10002a70
mov ecx, dword [0x1006bbc4]
push 6
lea eax, [esp + 0x90]
push eax
push ecx
call fcn.100029d0
mov dx, word [esp + 0x98]
mov al, byte [esp + 0x9a]
mov cx, word [esp + 0x9b]
mov dword [esp + 0x34], edi
mov dword [esp + 0x50], edi
mov word [esp + 0x34], dx
mov dl, byte [esp + 0x9d]
mov byte [esp + 0x36], al
mov eax, dword [esp + 0x34]
mov word [esp + 0x50], cx
mov byte [esp + 0x52], dl
mov edi, dword [esp + 0x50]
sub edi, eax
add esp, 0x18
test edi, edi
jle 0x1003eb48
cmp edi, 0x20
jge 0x1003eb48
mov ecx, dword [0x1006be9c]
mov edx, dword [0x1006bbc4]
push 0
add eax, ecx
push eax
push edx
call fcn.10002a70
mov ecx, dword [0x1006bbc4]
push edi
lea eax, [esp + 0x90]
push eax
push ecx
call fcn.100029d0
mov eax, dword [esp + 0x98]
add esp, 0x18
mov dword [0x1006ab70], ebx
jmp 0x1003eba5
xor edx, edx
mov eax, edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], edx
mov dword [esp + 0x80], eax
mov dword [esp + 0xa4], edx
mov dword [0x1006ab70], ebx
jmp 0x1003eba5
mov eax, dword [esp + 0x80]
mov edi, dword [esp + 0x48]
mov cl, al
and cl, 0xe0
cmp cl, 0x60
je case.0x1003f261.33
mov edx, dword [esp + 0x84]
shr edx, 8
and dl, 0xe0
cmp dl, 0x60
jne 0x1003ebce
cmp edi, 5
jg case.0x1003f261.33
cmp cl, 0x80
jne 0x1003ec47
and al, 0x1c
cmp al, 0xc
jne 0x1003ec2e
cmp word [esp + 0x28], 1
jne case.0x1003f261.33
movsx eax, word [esp + 0x50]
mov cl, byte [eax + esi - 1]
add eax, esi
cmp cl, 0x6f
jne 0x1003ec02
mov byte [eax - 1], 0x61
jmp 0x1003ed01
mov cl, byte [eax - 2]
cmp cl, 0x6c
je 0x1003ec13
cmp cl, 0x72
jne 0x1003ed01
movzx ecx, byte [eax - 3]
mov dl, byte [ecx + 0x1006bac0]
test dl, dl
je 0x1003ed01
mov byte [eax - 1], 0
jmp 0x1003ed01
cmp edi, 5
jle case.0x1003f261.33
cmp byte [esp + 0x15], 1
je 0x1003ecbc
jmp case.0x1003f261.33
cmp cl, 0xe0
je case.0x10041644.69
cmp cl, 0x40
jne 0x1003ec6f
mov dl, ah
and dl, 0xe0
cmp dl, 0x80
jne 0x1003ec6f
cmp byte [esp + 0x15], 1
je 0x1003ece7
jmp case.0x10041644.69
cmp cl, 0xc0
jne 0x1003ecbc
and al, 1
dec al
neg al
sbb eax, eax
inc eax
lea eax, [eax + eax + 5]
movsx eax, ax
cmp edi, eax
jle case.0x10041644.69
cmp byte [esp + 0x15], 1
jne case.0x10041644.69
mov cl, byte [esp + eax + 0x80]
and cl, 0xe0
cmp cl, 0x40
jne 0x1003ecb3
mov al, byte [esp + eax + 0x81]
and al, 0xe0
cmp al, 0x80
je 0x1003ece7
cmp cl, 0x20
jne case.0x10041644.69
push 0
push 1
push 5
push 5
push 0xffffffffffffffff
lea ecx, [esp + 0xbc]
push ecx
push esi
call fcn.1004c100
lea edx, [esp + 0xa8]
push edx
push 0xffffffffffffffff
push esi
call fcn.100022a0
add esp, 0xc
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003ecf0
sub eax, edx
movsx eax, ax
mov byte [eax + esi - 1], 0x61
push str.mente
push 0xffffffffffffffff
push esi
call fcn.10002250
add esp, 0xc
jmp case.0x1003f261.33
cmp ax, 6
je 0x1003ed2c
cmp ax, 2
je 0x1003ed2c
cmp ax, 1
jne case.0x1003f261.33
movzx eax, word [esp + 0x408]
cmp eax, 0xfbf4
jge 0x1003ed55
mov ecx, dword [ebp + 0x21c]
push 0
push 0xffffffffffffffff
push esi
push eax
push ecx
call fcn.10039eb0
add esp, 0x14
jmp case.0x1003f261.33
mov ebx, dword [0x1006be84]
add eax, 0xffff040c
imul eax, eax, 0xd
add eax, ebx
push eax
push 0xffffffffffffffff
push esi
call fcn.100022a0
add esp, 0xc
jmp case.0x1003f261.33
movzx edi, word [esp + 0x408]
mov dword [esp + 0x40], edi
cmp dword [0x1006ab70], edi
je 0x1003eeb3
xor ebx, ebx
push ebx
push edi
push esi
push ebp
call fcn.10039d20
mov ecx, dword [0x1006c010]
lea edx, [ecx + eax*2]
add edx, eax
mov eax, dword [0x1006bbc4]
add esp, 0xc
push edx
push eax
call fcn.10002a70
mov edx, dword [0x1006bbc4]
push 6
lea ecx, [esp + 0x90]
push ecx
push edx
call fcn.100029d0
mov ax, word [esp + 0x98]
mov cl, byte [esp + 0x9a]
mov dx, word [esp + 0x9b]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x50], ebx
mov word [esp + 0x34], ax
mov al, byte [esp + 0x9d]
mov byte [esp + 0x52], al
mov byte [esp + 0x36], cl
mov eax, dword [esp + 0x34]
mov word [esp + 0x50], dx
mov ebx, dword [esp + 0x50]
sub ebx, eax
add esp, 0x18
test ebx, ebx
jle 0x1003ee5f
cmp ebx, 0x20
jge 0x1003ee5f
mov ecx, dword [0x1006be9c]
mov edx, dword [0x1006bbc4]
push 0
add eax, ecx
push eax
push edx
call fcn.10002a70
mov ecx, dword [0x1006bbc4]
push ebx
lea eax, [esp + 0x90]
push eax
push ecx
call fcn.100029d0
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
add esp, 0x18
mov dword [0x1006ab70], edi
jmp 0x1003eec5
xor ecx, ecx
mov eax, ecx
mov edx, ecx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
mov dword [esp + 0xa4], ecx
mov dword [0x1006ab70], edi
jmp 0x1003eec5
mov edx, dword [esp + 0x84]
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x404], 6
jne 0x1003f247
mov eax, esi
mov byte [esp + 0x11], 0
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003eee0
mov cl, byte [esp + 0x80]
sub eax, edx
mov dword [esp + 0x18], eax
mov al, cl
and al, 0xe0
cmp al, 0x20
jne 0x1003ef2c
mov edx, dword [ebp + 0x21c]
mov al, byte [edx + 1]
movzx ecx, al
sub ecx, 0xe
cmp ecx, 0x20
jne 0x1003ef1a
mov byte [esp + 0x11], 0x60
jmp 0x1003ae25
cmp al, 0x30
jne 0x1003ae25
mov byte [esp + 0x11], 0x40
jmp 0x1003ae25
cmp al, 0xc0
jne 0x1003ae25
and cl, 1
dec cl
neg cl
sbb ecx, ecx
inc ecx
lea eax, [ecx + ecx + 5]
cmp ebx, eax
jle 0x1003ae25
mov dl, byte [esp + eax + 0x80]
and dl, 0xe0
cmp dl, 0x40
jne 0x1003ae25
mov eax, dword [ebp + 0x21c]
mov ecx, dword [eax + 0x31c]
push ecx
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x54]
push edx
push 0
push 0x1f4
push ecx
push esi
push eax
call fcn.10023c60
add esp, 0x1c
test ax, ax
je 0x1003ae25
mov byte [esp + 0x11], 0x60
jmp 0x1003ae25
mov edx, 1
mov eax, edx
mov dword [esp + 0x4c], eax
jmp 0x1003efb0
sub edi, 0x10000
cmp edi, 0x10000
jl 0x1003efc5
inc eax
cmp ax, 0x3a
jle 0x1003efb0
cmp ax, 3
mov dword [esp + 0x4c], eax
mov dword [esp + 0x40], edi
jne 0x1003f007
mov eax, dword [esp + 0x404]
cmp eax, 4
je 0x1003efe8
cmp eax, 6
jne 0x1003f0e3
mov eax, esi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003eff0
sub eax, edx
mov dword [esp + 0x18], eax
mov byte [esp + 0x11], 0x20
jmp 0x1003f0e3
cmp ax, 7
jl 0x1003f077
cmp ax, 0x10
jg 0x1003f081
cmp ax, 0xb
lea ecx, [eax - 7]
jle 0x1003f02b
sub ecx, 5
mov dword [esp + 0x4c], edx
mov edx, dword [0x1006bab0]
xor eax, eax
cmp cx, ax
mov dword [esp + 0x18], eax
jle 0x1003f056
lea esp, [esp]
movsx esi, ax
cmp byte [esi + edx + 0x65], 0
jne 0x1003f04e
inc dword [esp + 0x18]
inc eax
cmp word [esp + 0x18], cx
jl 0x1003f040
movsx eax, ax
lea ecx, [eax + edx + 0x65]
push ecx
lea edx, [esp + 0x70]
push 0xffffffffffffffff
push edx
call fcn.100022a0
mov dword [esp + 0x70], 2
jmp 0x1003f0e0
cmp ax, 0x10
jle 0x1003f0e3
cmp ax, 0x16
jge 0x1003f0e3
cmp ax, 0x25
lea ecx, [eax - 0x11]
jle 0x1003f09b
sub ecx, 0x14
mov dword [esp + 0x4c], edx
mov edx, dword [0x1006b834]
movsx ecx, cx
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x24], eax
jle 0x1003f0c6
mov edi, edi
movsx esi, ax
cmp byte [esi + edx], 0
jne 0x1003f0bd
inc dword [esp + 0x24]
mov esi, dword [esp + 0x24]
inc eax
cmp esi, ecx
jl 0x1003f0b0
movsx eax, ax
add eax, edx
push eax
lea ecx, [esp + 0x70]
push 0xffffffffffffffff
push ecx
call fcn.100022a0
mov dword [esp + 0x70], 1
add esp, 0xc
movsx eax, word [esp + 0x28]
add eax, 0xfffffffd
cmp eax, 5
ja case.0x1004071b.1
jmp dword [eax*4 + 0x100416d4]
mov eax, dword [esp + 0x4c]
cmp ax, 4
je 0x1003f1fb
cmp ax, 5
je 0x1003f1ff
movzx eax, byte [esp + 0x11]
cmp eax, 0x60
ja case.0x1004071b.1
movzx edx, byte [eax + 0x100416fc]
jmp dword [edx*4 + 0x100416ec]
mov eax, dword [esp + 0x400]
add eax, 0xffffffbc
cmp eax, 0x44
ja case.0x10041644.69
movzx eax, byte [eax + 0x10041774]
jmp dword [eax*4 + 0x10041760]
movsx ecx, word [esp + 0x18]
mov edx, dword [esp + 0x40c]
mov byte [ecx + edx - 1], 0x6f
jmp case.0x10041644.69
movsx eax, word [esp + 0x18]
mov ecx, dword [esp + 0x40c]
mov byte [eax + ecx - 1], 0x61
jmp case.0x10041644.69
movsx edx, word [esp + 0x18]
mov eax, dword [esp + 0x40c]
mov cl, byte [eax + edx - 2]
add eax, edx
cmp cl, 0x63
jne 0x1003f1a3
mov byte [eax - 1], 0x68
mov byte [eax], 0x69
mov byte [eax + 1], 0
jmp case.0x10041644.69
mov byte [eax - 1], 0x69
jmp case.0x10041644.69
movsx ecx, word [esp + 0x18]
mov edx, dword [esp + 0x40c]
lea eax, [ecx + edx]
cmp byte [eax - 2], 0x63
jne 0x1003f1d1
mov byte [eax - 1], 0x68
mov byte [eax], 0x65
mov byte [eax + 1], 0
jmp case.0x10041644.69
mov byte [eax - 1], 0x65
jmp case.0x10041644.69
mov eax, dword [esp + 0x400]
add eax, 0xffffffbc
cmp eax, 0x44
ja case.0x10041644.69
movzx eax, byte [eax + 0x100417c8]
jmp dword [eax*4 + 0x100417bc]
mov al, 0xa
jmp 0x1003f201
mov al, 1
mov byte [esp + 0x24], al
movzx ax, al
push 0xffffffffffffffff
lea edx, [esp + 0xd4]
push edx
push edi
push eax
call fcn.10019800
mov esi, dword [esp + 0x34]
add esp, 0x10
jmp 0x100410f3
mov ecx, dword [esp + 0x40c]
mov edx, dword [ebp + 0x21c]
push 0
push 0xffffffffffffffff
push ecx
push edi
push edx
call fcn.10039eb0
add esp, 0x14
jmp case.0x10041644.69
and eax, 0xe0
add eax, 0xffffffe0
cmp eax, 0xc0
ja case.0x1003f261.33
movzx eax, byte [eax + 0x10041828]
jmp dword [eax*4 + 0x10041810]
mov cl, byte [esi + 1]
cmp cl, 1
jb 0x1003f283
cmp cl, 3
ja 0x1003f283
mov dl, dh
and dl, 0xe0
cmp dl, 0x20
je case.0x1003f261.32
cmp word [esp + 0x28], 4
mov eax, dword [esp + 0x3fc]
je 0x1003f2a2
test eax, eax
jl 0x1003f2db
mov edx, dword [ebp + 0x30]
cmp dword [edx + eax*4], 0x60000
jbe 0x1003f2db
mov edx, dword [ebp + 0x38]
movzx eax, word [edx + eax*2]
mov edx, dword [ebp + 4]
lea eax, [eax + eax*2]
movzx eax, word [edx + eax*4 + 4]
mov edx, dword [ebp + 0x14]
mov al, byte [eax + edx + 2]
and al, 0x60
cmp al, 0x60
je 0x1003f2c5
cmp al, 0x40
jne 0x1003f2db
cmp ebx, 5
jle 0x1003f2db
mov al, byte [esp + 0x85]
and al, 0xe0
cmp al, 0x20
je case.0x1003f261.32
cmp cl, 4
je case.0x1003f261.32
mov ecx, dword [ebp + 0x21c]
push 0
push 0xffffffffffffffff
push esi
push edi
push ecx
call fcn.10039eb0
mov eax, esi
add esp, 0x14
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003f300
mov cl, byte [esp + 0x17]
sub eax, edx
mov dword [esp + 0x18], eax
mov al, byte [esp + 0x80]
and al, 1
dec al
neg al
sbb eax, eax
inc eax
test cl, cl
lea eax, [eax + eax + 5]
jne 0x1003f36b
mov edx, dword [ebp + 0x34]
mov ecx, dword [esp + 0x3fc]
cmp byte [ecx + edx], 3
je 0x1003f36b
test byte [esp + 0x83], 0x20
jne 0x10040701
cmp ebx, eax
jle 0x1003f36b
mov dl, byte [esp + eax + 0x80]
and dl, 0xe0
cmp dl, 0x40
jne 0x1003f36b
mov al, byte [esp + eax + 0x81]
and al, 0xf0
cmp al, 0x80
je 0x10040701
cmp byte [esp + 0x12], 0x40
jne 0x1003f387
test byte [esp + 0x80], 0x10
je case.0x1004071b.0
mov esi, dword [esp + 0x40c]
mov eax, dword [ebp + 0x21c]
mov ecx, dword [eax + 0x31c]
push ecx
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x54]
push edx
push 0
push 0x1f4
push ecx
push esi
push eax
call fcn.10023c60
add esp, 0x1c
test ax, ax
je case.0x1004071b.0
cmp dword [esp + 0x404], 2
jne 0x10040701
mov eax, 4
cmp word [esp + 0x28], ax
je 0x1003f3f7
cmp dword [0x10068270], eax
je 0x1003f3f7
mov edx, dword [ebp + 0x34]
mov eax, dword [esp + 0x3fc]
mov al, byte [eax + edx]
cmp al, 3
je case.0x1004071b.0
cmp al, 7
je case.0x1004071b.0
cmp dword [esp + 0x400], 0x80
jl 0x10040701
test byte [esp + 0x80], 0x10
je case.0x1004071b.0
jmp 0x10040701
mov al, byte [esi + 1]
cmp al, 1
jb 0x1003f439
cmp al, 4
ja 0x1003f439
cmp ebx, 5
jle 0x1003f439
mov cl, dh
and cl, 0xe0
cmp cl, 0x20
je case.0x1003f261.32
mov eax, dword [esp + 0x28]
cmp ax, 3
jne 0x1003f4d1
cmp ebx, 5
jle case.0x1003f128.0
mov al, dh
and al, 0xe0
cmp al, 0xc0
jne case.0x1003f128.0
mov eax, dword [esp + 0x414]
test eax, eax
je 0x1003f474
cmp dword [0x10068270], 4
je case.0x1003f128.0
mov ecx, dword [esp + 0x400]
mov dl, dh
and dl, 0x10
sub dl, 0x10
neg dl
sbb edx, edx
and edx, 0xffffffc0
add edx, 0x80
mov eax, edx
and ecx, 0xc0
cmp cx, ax
je 0x1003f4b0
mov dl, byte [esp + 0x87]
and dl, 0x1c
cmp dl, 0x1c
jne case.0x1003f128.0
sub ebx, 5
push ebx
lea eax, [esp + 0x89]
push eax
lea ecx, [esp + 0x88]
push ecx
call fcn.1005881b
add esp, 0xc
jmp case.0x1004071b.0
cmp ax, 4
jne case.0x1003f128.0
mov ecx, dword [esp + 0x3fc]
mov eax, dword [ebp + 0x38]
movzx eax, word [eax + ecx*2]
mov ecx, dword [ebp + 4]
lea eax, [eax + eax*2]
movzx eax, word [ecx + eax*4 + 4]
mov ecx, dword [ebp + 0x14]
mov al, byte [eax + ecx + 2]
and al, 0x60
cmp al, 0x60
je 0x1003f509
cmp al, 0x40
jne case.0x1003f128.0
cmp ebx, 5
jle case.0x1003f128.0
mov dl, dh
and dl, 0xe0
cmp dl, 0x20
jne case.0x1003f128.0
mov edx, dword [esp + 0x40c]
cmp byte [edx], 0x26
je case.0x1003f128.0
mov esi, edx
push 0
push 0xffffffffffffffff
lea eax, [esp + 0xd8]
push eax
mov dword [0x1006ab40], 1
mov ecx, dword [ebp + 0x21c]
push edi
push ecx
call fcn.10039eb0
lea eax, [esp + 0xe4]
add esp, 0x14
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003f562
sub eax, edx
mov dword [esp + 0x24], eax
cmp byte [0x1006ab58], 1
jne 0x1003f594
mov edx, dword [esp + 0x400]
and edx, 0xf3
add edx, 4
mov byte [esp + 0x10], 4
mov dword [esp + 0x400], edx
mov cl, byte [esi + 1]
movzx eax, cl
dec eax
je 0x1003f84f
dec eax
je 0x1003f6ee
dec eax
je 0x1003f80d
cmp cl, 4
jne 0x1003f68f
mov ecx, dword [ebp + 0x21c]
push 0
push 0xffffffffffffffff
lea eax, [esp + 0xd8]
push eax
push edi
push ecx
call fcn.10039eb0
mov eax, dword [esp + 0x68]
add esp, 0x14
test eax, eax
jne 0x1003f68f
mov eax, dword [esp + 0x414]
test eax, eax
jne 0x1003f68f
mov edx, dword [ebp + 0x38]
mov eax, dword [esp + 0x3fc]
movzx eax, word [edx + eax*2]
mov edx, dword [ebp + 4]
lea ecx, [eax + eax*2]
movzx eax, word [edx + ecx*4 + 4]
mov ecx, dword [ebp + 0x14]
test byte [eax + ecx + 2], 1
jne 0x1003f68f
push 0
push 1
push 5
push 5
push 0xffffffffffffffff
lea edx, [esp + 0xe4]
push edx
mov eax, edx
push eax
call fcn.1004c100
test byte [esi], 4
je 0x1003f646
lea ecx, [esp + 0x68]
push ecx
push 0xffffffffffffffff
lea edx, [esp + 0xd8]
push edx
jmp 0x1003f655
push 0x10062974
push 0xffffffffffffffff
lea eax, [esp + 0xd8]
push eax
call fcn.10002250
lea eax, [esp + 0xdc]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003f667
lea ecx, [esp + 0xd0]
push ecx
sub eax, edx
add eax, 0xfffffffe
push 0xffffffffffffffff
push esi
mov dword [esp + 0x24], eax
call fcn.100022a0
add esp, 0xc
jmp 0x10040701
mov eax, dword [esp + 0x3fc]
test eax, eax
jl 0x1003f710
cmp byte [esi], 0x26
je 0x1003f6ca
mov edx, dword [ebp + 0x38]
movzx eax, word [edx + eax*2]
mov ecx, dword [ebp + 4]
lea eax, [eax + eax*2]
movzx edx, word [ecx + eax*4 + 4]
mov eax, dword [ebp + 0x14]
mov al, byte [edx + eax + 2]
and al, 0x60
cmp al, 0x60
jne 0x1003f6e2
mov ecx, dword [esp + 0x54]
test ecx, ecx
jne 0x1003f6e2
push 0
push 1
push 5
push 5
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0xe8]
push ecx
jmp 0x1003f862
cmp al, 0x40
jne 0x1003f710
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x1003f710
push 0
push 1
push 0
push 5
push 0xffffffffffffffff
push esi
lea edx, [esp + 0xe8]
push edx
call fcn.1004c100
mov byte [esp + 0x11], 0x40
jmp 0x1003f86c
mov cl, byte [esi]
mov dl, cl
and dl, 1
jne 0x1003f72d
test cl, 4
jne 0x1003f72d
mov dword [0x1006ab40], 2
jmp 0x1003f7ad
movsx eax, word [esp + 0x24]
lea eax, [esp + eax + 0xd0]
mov bl, 0x72
cmp byte [eax - 3], bl
jne 0x1003f746
mov byte [eax - 2], 0
jmp 0x1003f74f
cmp byte [eax - 2], bl
jne 0x1003f74f
mov byte [eax - 1], 0
cmp dl, 1
jne 0x1003f765
push 0x10062974
push 0xffffffffffffffff
lea eax, [esp + 0xd8]
push eax
jmp 0x1003f7a5
test cl, 4
je 0x1003f7ad
lea eax, [esp + 0xd0]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003f774
sub eax, edx
movsx eax, ax
mov cl, byte [esp + eax + 0xcf]
cmp cl, 0x69
lea eax, [esp + eax + 0xcf]
jne 0x1003f796
mov byte [eax], 0x65
lea ecx, [esp + 0x68]
push ecx
push 0xffffffffffffffff
lea edx, [esp + 0xd8]
push edx
call fcn.10002250
add esp, 0xc
mov esi, dword [0x10068040]
lea eax, [esp + 0xd0]
lea ebx, [ebx]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x1003f7e8
test cl, cl
je 0x1003f7e4
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x1003f7e8
add eax, 2
add esi, 2
test cl, cl
jne 0x1003f7c0
xor eax, eax
jmp 0x1003f7ed
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1003b2c8
cmp byte [esp + 0x10], 4
jne 0x1003b2c8
mov byte [esp + 0xd5], 0x69
jmp 0x1003b2c8
lea eax, [esp + 0xd0]
push eax
push 0xffffffffffffffff
push esi
call fcn.100022a0
movsx ecx, word [esp + 0x30]
lea eax, [ecx + esi]
mov cl, byte [eax - 3]
add esp, 0xc
cmp cl, 0x65
jne 0x1003f834
mov byte [eax - 3], 0x69
mov edx, dword [str.bile]
add eax, 0xfffffffe
mov dword [eax], edx
mov cl, byte [0x10062938]
mov byte [eax + 4], cl
mov byte [esp + 0x11], 0x20
jmp 0x1003f86c
push 0
push 1
push 5
push 5
push 0xffffffffffffffff
push esi
lea eax, [esp + 0xe8]
push eax
call fcn.1004c100
mov byte [esp + 0x11], 0x60
lea ecx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x1003f870
sub esi, ecx
mov dword [esp + 0x18], esi
jmp case.0x1003f0f4.3
test byte [esi], 1
je 0x1003f88f
mov dword [esp + 0x24], 1
mov ecx, dword [ebp + 0x21c]
push 0
push 0xffffffffffffffff
push esi
push edi
push ecx
call fcn.10039eb0
mov eax, esi
add esp, 0x14
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003f8b0
sub eax, edx
cmp ax, 2
mov dword [esp + 0x18], eax
jne 0x1003f8e6
cmp byte [esi + 1], 0x61
jne 0x1003f8e6
cmp byte [esp + 0x10], 4
jne 0x1003f8e6
push str.anno
push 0xffffffffffffffff
inc esi
push esi
call fcn.100022a0
add esp, 0xc
jmp case.0x1003f261.33
mov ecx, dword [esp + 0x80]
mov dl, cl
and dl, 0xe0
cmp dl, 0x40
jne 0x1003f907
mov al, ch
and al, 0xf0
cmp al, 0x80
je 0x1003f907
cmp al, 0x90
jne case.0x1003f261.33
mov al, ch
and al, 0x18
cmp al, 8
jne 0x1003f916
mov byte [esp + 0x11], 0x60
jmp 0x1003f91f
cmp al, 0x18
jne 0x1003f91f
mov byte [esp + 0x11], 0x40
mov eax, dword [esp + 0x24]
test eax, eax
je case.0x1003f0f4.3
push 0x10062974
push 0xffffffffffffffff
push esi
call fcn.10002250
add esp, 0xc
jmp case.0x1003f0f4.3
mov eax, dword [ebp + 0x21c]
push 0
push 0xffffffffffffffff
push esi
push edi
push eax
call fcn.10039eb0
add esp, 0x14
cmp ebx, 2
jle 0x1003f992
cmp word [esp + 0x28], 7
je 0x1003f992
mov cl, byte [esp + 0x82]
and cl, 0xe0
cmp cl, 0xc0
jne 0x1003f992
sub ebx, 2
push ebx
lea edx, [esp + 0x86]
push edx
lea eax, [esp + 0x88]
push eax
call fcn.1005881b
add esp, 0xc
jmp case.0x1004071b.0
mov al, byte [esp + 0x80]
mov cl, al
and cl, 0xe0
cmp cl, 0xe0
jne case.0x1003f261.33
and al, 3
cmp al, 3
jne 0x1003f9b4
mov byte [esp + 0x13], 0x80
jmp case.0x1003f0f4.8
cmp al, 2
jne case.0x1003f0f4.8
mov byte [esp + 0x13], 0x40
cmp edi, 0xfbf4
jl 0x1003f9db
movsx edx, word [esp + 0x18]
mov eax, dword [esp + 0x40c]
mov byte [edx + eax + 1], 1
jmp case.0x1004071b.1
cmp dword [0x1006ab70], edi
je 0x1003faf6
mov ecx, dword [esp + 0x40c]
xor esi, esi
push esi
push edi
push ecx
push ebp
call fcn.10039d20
mov edx, dword [0x1006c010]
lea ecx, [edx + eax*2]
mov edx, dword [0x1006bbc4]
add esp, 0xc
add ecx, eax
push ecx
push edx
call fcn.10002a70
mov ecx, dword [0x1006bbc4]
push 6
lea eax, [esp + 0x90]
push eax
push ecx
call fcn.100029d0
mov dx, word [esp + 0x98]
mov al, byte [esp + 0x9a]
mov cx, word [esp + 0x9b]
mov dword [esp + 0x34], esi
mov word [esp + 0x34], dx
mov dl, byte [esp + 0x9d]
mov dword [esp + 0x50], esi
mov byte [esp + 0x36], al
mov eax, dword [esp + 0x34]
mov word [esp + 0x50], cx
mov byte [esp + 0x52], dl
mov ebx, dword [esp + 0x50]
sub ebx, eax
add esp, 0x18
cmp ebx, esi
jle 0x1003faa8
cmp ebx, 0x20
jge 0x1003faa8
mov ecx, dword [0x1006be9c]
mov edx, dword [0x1006bbc4]
push esi
add eax, ecx
push eax
push edx
call fcn.10002a70
mov ecx, dword [0x1006bbc4]
push ebx
lea eax, [esp + 0x90]
push eax
push ecx
call fcn.100029d0
add esp, 0x18
jmp 0x1003faf0
xor edx, edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], edx
mov dword [0x1006ab70], edi
mov al, byte [esp + 0x80]
and al, 0xe0
cmp al, 0x20
jne 0x1003fb35
mov eax, dword [ebp + 0x21c]
cmp byte [eax + 1], 0x30
mov byte [esp + 0x11], 0x60
jne 0x1003fb19
mov byte [esp + 0x11], 0x40
mov eax, dword [esp + 0x40c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003fb23
sub eax, edx
mov dword [esp + 0x18], eax
jmp case.0x1003f0f4.3
cmp al, 0x80
je case.0x1003f128.0
cmp al, 0xc0
jne 0x100411d1
mov esi, dword [esp + 0x4c]
cmp si, 4
mov dword [esp + 0x24], 0
je 0x10041077
cmp si, 5
je 0x1004107b
cmp edi, 0x400000
jl 0x1003fb96
cmp edi, 0x40a410
jg 0x1003fb96
lea ecx, [edi - 0x400000]
push ecx
call fcn.100151c0
push eax
lea edx, [esp + 0xd8]
push 0xffffffffffffffff
push edx
call fcn.100022a0
add esp, 0x10
jmp 0x1003fbb2
mov ecx, dword [ebp + 0x21c]
push 0
push 0xffffffffffffffff
lea eax, [esp + 0xd8]
push eax
push edi
push ecx
call fcn.10039eb0
add esp, 0x14
mov eax, dword [esp + 0x3fc]
cmp eax, 0xffffffff
jne 0x1003fbc7
xor eax, eax
mov dword [esp + 0x3fc], eax
mov ecx, dword [esp + 0x404]
cmp ecx, 4
jge 0x1003fbf6
mov edx, dword [ebp + 0x38]
movzx eax, word [edx + eax*2]
mov edx, dword [ebp + 4]
lea eax, [eax + eax*2]
movzx eax, word [edx + eax*4 + 4]
mov edx, dword [ebp + 0x14]
mov al, byte [eax + edx + 4]
and al, 0x1c
cmp al, 0x1c
je 0x1003fc26
cmp al, 0x18
je 0x1003fc26
cmp si, 1
je 0x10040a71
cmp ecx, 4
je 0x1003fc26
cmp dword [esp + 0x78], 1
je 0x1003fc26
cmp ecx, 2
jne 0x100401ac
mov al, byte [esp + 0x82]
and al, 0x1c
cmp al, 0x1c
jne 0x100401ac
cmp si, 1
je 0x10040a71
cmp dword [0x1006ab70], edi
je 0x1003fd4b
mov ecx, dword [esp + 0x40c]
xor esi, esi
push esi
push edi
push ecx
push ebp
call fcn.10039d20
mov edx, dword [0x1006c010]
lea ecx, [edx + eax*2]
mov edx, dword [0x1006bbc4]
add esp, 0xc
add ecx, eax
push ecx
push edx
call fcn.10002a70
mov ecx, dword [0x1006bbc4]
push 6
lea eax, [esp + 0x90]
push eax
push ecx
call fcn.100029d0
mov dx, word [esp + 0x98]
mov al, byte [esp + 0x9a]
mov cx, word [esp + 0x9b]
mov dword [esp + 0x34], esi
mov word [esp + 0x34], dx
mov dl, byte [esp + 0x9d]
mov dword [esp + 0x50], esi
mov byte [esp + 0x36], al
mov eax, dword [esp + 0x34]
mov word [esp + 0x50], cx
mov byte [esp + 0x52], dl
mov ebx, dword [esp + 0x50]
sub ebx, eax
add esp, 0x18
cmp ebx, esi
jle 0x1003fcfd
cmp ebx, 0x20
jge 0x1003fcfd
mov ecx, dword [0x1006be9c]
mov edx, dword [0x1006bbc4]
push esi
add eax, ecx
push eax
push edx
call fcn.10002a70
mov ecx, dword [0x1006bbc4]
push ebx
lea eax, [esp + 0x90]
push eax
push ecx
call fcn.100029d0
add esp, 0x18
jmp 0x1003fd45
xor edx, edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], edx
mov dword [0x1006ab70], edi
cmp ebx, 7
mov dword [esp + 0x3c], 0
jle 0x1003fd84
mov al, byte [esp + 0x80]
and al, 0xe0
cmp al, 0x80
jne 0x1003fd84
lea ecx, [ebx - 5]
push ecx
lea edx, [esp + 0x89]
push edx
lea eax, [esp + 0x88]
push eax
call fcn.1005881b
add esp, 0xc
sub ebx, 5
mov cl, byte [esp + 0x80]
mov al, cl
and al, 0x10
mov dword [esp + 0x24], 1
jne 0x1003fda0
cmp byte [esp + 0x12], 0x80
je 0x1003fdab
cmp al, 0x10
jne 0x1003fdb3
cmp byte [esp + 0x12], 0x40
jne 0x1003fdb3
mov dword [esp + 0x24], 0
mov al, cl
and al, 1
je 0x1003ffa8
and cl, 0xc
cmp cl, 8
jne 0x1003ffa8
cmp dword [esp + 0x24], 1
jne 0x1003ffa8
xor ecx, ecx
cmp al, 1
sete cl
lea eax, [ecx + ecx + 5]
cmp dword [esp + 0x404], 4
jne 0x1003fe58
cmp ebx, eax
jle 0x1003fe58
mov cl, byte [esp + eax + 0x80]
lea esi, [esp + eax + 0x80]
mov dl, cl
and dl, 0xe0
cmp dl, 0xc0
jne 0x1003fe58
test cl, 1
jne 0x1003fe58
sub ebx, eax
push ebx
lea eax, [esp + 0x84]
push esi
push eax
call fcn.1005881b
mov al, byte [esp + 0x8c]
add esp, 0xc
and al, 0x10
jne 0x1003fe38
cmp byte [esp + 0x12], 0x80
je 0x1003fe4b
cmp al, 0x10
jne 0x1003ffa8
cmp byte [esp + 0x12], 0x40
jne 0x1003ffa8
mov dword [esp + 0x24], 0
jmp 0x1003ffa8
movzx edi, byte [esp + 0x86]
movzx ecx, byte [esp + 0x85]
mov eax, dword [ebp + 0x21c]
xor esi, esi
push esi
push 0xffffffffffffffff
lea edx, [esp + 0xd8]
shl edi, 8
add edi, ecx
push edx
push edi
push eax
mov dword [esp + 0x54], edi
call fcn.10039eb0
mov eax, dword [0x1006ab70]
add esp, 0x14
cmp eax, edi
je 0x1003ffa8
mov ecx, dword [esp + 0x40c]
push esi
push edi
push ecx
push ebp
call fcn.10039d20
mov edx, dword [0x1006c010]
lea ecx, [edx + eax*2]
mov edx, dword [0x1006bbc4]
add esp, 0xc
add ecx, eax
push ecx
push edx
call fcn.10002a70
mov ecx, dword [0x1006bbc4]
push 6
lea eax, [esp + 0x90]
push eax
push ecx
call fcn.100029d0
mov dx, word [esp + 0x98]
mov al, byte [esp + 0x9a]
mov cx, word [esp + 0x9b]
mov dword [esp + 0x34], esi
mov word [esp + 0x34], dx
mov dl, byte [esp + 0x9d]
mov dword [esp + 0x50], esi
mov byte [esp + 0x36], al
mov eax, dword [esp + 0x34]
mov word [esp + 0x50], cx
mov byte [esp + 0x52], dl
mov ebx, dword [esp + 0x50]
sub ebx, eax
add esp, 0x18
cmp ebx, esi
jle 0x1003ff5a
cmp ebx, 0x20
jge 0x1003ff5a
mov ecx, dword [0x1006be9c]
mov edx, dword [0x1006bbc4]
push esi
add eax, ecx
push eax
push edx
call fcn.10002a70
mov ecx, dword [0x1006bbc4]
push ebx
lea eax, [esp + 0x90]
push eax
push ecx
call fcn.100029d0
add esp, 0x18
jmp 0x1003ffa2
xor edx, edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], edx
mov dword [0x1006ab70], edi
mov al, byte [esp + 0x80]
mov cl, al
and cl, 0xc
cmp cl, 0xc
je 0x10040053
cmp ebx, 7
jle 0x10040053
cmp byte [esp + 0x12], 0x40
jne 0x1003ffdb
mov dl, al
and dl, 0x1c
cmp dl, 4
je case.0x10040ac8.5
and al, 1
dec al
neg al
lea ecx, [esp + 0x80]
sbb eax, eax
inc eax
lea eax, [eax + eax + 5]
movsx eax, ax
sub ebx, eax
push ebx
lea eax, [esp + eax + 0x84]
push eax
push ecx
call fcn.1005881b
mov cl, byte [esp + 0x8c]
mov al, cl
and al, 0xe0
add esp, 0xc
cmp al, 0xc0
jne 0x10040037
mov al, cl
and al, 0x10
jne 0x10040022
cmp byte [esp + 0x12], 0x40
je 0x1004002d
cmp al, 0x10
jne 0x1004003f
cmp byte [esp + 0x12], 0x80
jne 0x1004003f
mov dword [esp + 0x24], 1
jmp 0x1004003f
cmp al, 0x20
je case.0x10040ac8.5
cmp dword [esp + 0x404], 4
jne 0x10040053
test cl, 0x10
je 0x10040053
mov byte [esp + 0x13], 0x80
mov ecx, dword [esp + 0x80]
mov dl, cl
and dl, 1
dec dl
neg dl
sbb edx, edx
inc edx
lea esi, [edx + edx + 5]
movsx eax, si
cmp ebx, eax
jle 0x10040090
mov al, byte [esp + eax + 0x80]
mov dl, al
and dl, 0xe0
cmp dl, 0xc0
jne 0x10040090
and al, 0xc
cmp al, 0xc
jne 0x10040090
mov dword [esp + 0x3c], 1
cmp dword [esp + 0x404], 2
jne 0x100400c9
cmp word [esp + 0x28], 5
jne 0x100400c9
mov edx, dword [esp + 0x3fc]
mov eax, dword [ebp + 0x38]
movzx eax, word [eax + edx*2]
mov edx, dword [ebp + 4]
lea eax, [eax + eax*2]
movzx eax, word [edx + eax*4 + 4]
mov edx, dword [ebp + 0x14]
cmp byte [eax + edx + 8], 0x46
je case.0x10040ac8.5
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x10040722
test byte [esp + 0x82], 1
jne 0x10040a71
mov al, byte [esp + 0x12]
cmp byte [esp + 0x13], al
jne 0x10040107
cmp dword [esp + 0x404], 2
jne 0x100401a2
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x100401a2
mov ecx, dword [esp + 0x40c]
push 0
push edi
push ecx
push ebp
call fcn.10039d20
mov edx, dword [0x1006babc]
lea ecx, [edx + eax*2]
mov edx, dword [0x1006bbc4]
add esp, 0xc
add ecx, eax
push ecx
push edx
call fcn.10002a70
mov ecx, dword [0x1006bbc4]
push 3
lea eax, [esp + 0x68]
push eax
push ecx
call fcn.100029d0
movzx edi, byte [esp + 0x72]
mov eax, dword [esp + 0x70]
movzx edx, ah
shl edi, 8
add esp, 0x18
add edi, edx
mov dword [esp + 0x40], edi
je 0x10040164
cmp al, 0x6d
je 0x10040186
cmp ebx, 7
jne 0x10040fe2
movzx edi, byte [esp + 0x86]
movzx edx, byte [esp + 0x85]
shl edi, 8
add edi, edx
mov dword [esp + 0x40], edi
mov ecx, dword [ebp + 0x21c]
push 0
push 0xffffffffffffffff
lea eax, [esp + 0xd8]
push eax
push edi
push ecx
call fcn.10039eb0
add esp, 0x14
mov dword [esp + 0x24], 1
jmp 0x100401be
mov al, byte [esp + 0x23]
test al, al
je 0x100401be
mov dword [0x1006ab70], 0xf42400
cmp dword [0x1006ab70], edi
je 0x100402d8
mov edx, dword [esp + 0x40c]
xor esi, esi
push esi
push edi
push edx
push ebp
call fcn.10039d20
mov ecx, dword [0x1006c010]
lea edx, [ecx + eax*2]
add edx, eax
mov eax, dword [0x1006bbc4]
add esp, 0xc
push edx
push eax
call fcn.10002a70
mov edx, dword [0x1006bbc4]
push 6
lea ecx, [esp + 0x90]
push ecx
push edx
call fcn.100029d0
mov ax, word [esp + 0x98]
mov cl, byte [esp + 0x9a]
mov dx, word [esp + 0x9b]
mov dword [esp + 0x34], esi
mov word [esp + 0x34], ax
mov al, byte [esp + 0x9d]
mov dword [esp + 0x50], esi
mov byte [esp + 0x52], al
mov byte [esp + 0x36], cl
mov eax, dword [esp + 0x34]
mov word [esp + 0x50], dx
mov ebx, dword [esp + 0x50]
sub ebx, eax
add esp, 0x18
cmp ebx, esi
jle 0x1004028a
cmp ebx, 0x20
jge 0x1004028a
mov ecx, dword [0x1006be9c]
mov edx, dword [0x1006bbc4]
push esi
add eax, ecx
push eax
push edx
call fcn.10002a70
mov ecx, dword [0x1006bbc4]
push ebx
lea eax, [esp + 0x90]
push eax
push ecx
call fcn.100029d0
add esp, 0x18
jmp 0x100402d2
xor edx, edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], edx
mov dword [0x1006ab70], edi
mov eax, dword [0x1006ab70]
xor dl, dl
cmp eax, edi
mov byte [esp + 0x23], dl
je 0x100403fd
mov eax, dword [esp + 0x40c]
xor esi, esi
push esi
push edi
push eax
push ebp
call fcn.10039d20
mov ecx, dword [0x1006c010]
lea edx, [ecx + eax*2]
add edx, eax
mov eax, dword [0x1006bbc4]
add esp, 0xc
push edx
push eax
call fcn.10002a70
mov edx, dword [0x1006bbc4]
push 6
lea ecx, [esp + 0x90]
push ecx
push edx
call fcn.100029d0
mov ax, word [esp + 0x98]
mov cl, byte [esp + 0x9a]
mov dx, word [esp + 0x9b]
mov dword [esp + 0x34], esi
mov word [esp + 0x34], ax
mov al, byte [esp + 0x9d]
mov dword [esp + 0x50], esi
mov byte [esp + 0x52], al
mov byte [esp + 0x36], cl
mov eax, dword [esp + 0x34]
mov word [esp + 0x50], dx
mov ebx, dword [esp + 0x50]
sub ebx, eax
add esp, 0x18
cmp ebx, esi
jle 0x100403ab
cmp ebx, 0x20
jge 0x100403ab
mov ecx, dword [0x1006be9c]
mov edx, dword [0x1006bbc4]
push esi
add eax, ecx
push eax
push edx
call fcn.10002a70
mov ecx, dword [0x1006bbc4]
push ebx
lea eax, [esp + 0x90]
push eax
push ecx
call fcn.100029d0
add esp, 0x18
jmp 0x100403f3
xor edx, edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], edx
mov dl, byte [esp + 0x23]
mov dword [0x1006ab70], edi
mov al, byte [esp + 0x80]
and al, 0xe0
cmp al, 0x60
jne 0x1004042f
sub ebx, 2
mov ecx, ebx
mov eax, ecx
shr ecx, 2
lea esi, [esp + 0x82]
lea edi, [esp + 0x80]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x40]
cmp dword [esp + 0x404], 2
jne 0x100404b4
mov ecx, dword [ebp + 0x34]
mov eax, dword [esp + 0x3fc]
cmp byte [eax + ecx], 4
jne 0x10040499
mov al, byte [esp + 0x80]
mov cl, al
and cl, 0xe0
cmp cl, 0xc0
jne 0x10040499
and al, 1
dec al
neg al
sbb eax, eax
inc eax
lea eax, [eax + eax + 5]
movsx eax, ax
cmp ebx, eax
jle 0x10040499
mov al, byte [esp + eax + 0x80]
mov cl, al
and cl, 0xe0
cmp cl, 0xc0
jne 0x10040499
and al, 0xc
cmp al, 0xc
jne 0x10040499
mov dword [esp + 0x404], 0x64
jmp 0x1003fd4b
mov al, byte [esp + 0x80]
and al, 0xe0
cmp al, 0xc0
jne 0x100404b4
test byte [esp + 0x82], 1
jne 0x10040a71
cmp ebx, 5
jle 0x10040544
mov cl, byte [esp + 0x80]
and cl, 0xe0
cmp cl, 0x80
jne 0x100404ed
mov al, byte [esp + 0x85]
and al, 0xe0
cmp al, 0xc0
mov dl, 5
mov byte [esp + 0x23], dl
jne 0x100404ed
test byte [esp + 0x87], 1
jne 0x10040a71
movzx ecx, dl
mov al, byte [esp + ecx + 0x80]
and al, 0xe0
cmp al, 0x80
jne 0x10040503
inc dl
mov byte [esp + 0x23], dl
cmp dword [esp + 0x404], 6
jne 0x10040544
movzx ecx, dl
mov al, byte [esp + ecx + 0x80]
test al, 1
je 0x10040544
and al, 0xc
cmp al, 8
jne 0x10040544
cmp ebx, 7
jle 0x10040544
mov al, byte [esp + ecx + 0x87]
mov cl, al
and cl, 0xe0
cmp cl, 0xc0
jne 0x10040544
and al, 0xc
cmp al, 0xc
jne 0x10040544
add dl, 7
mov byte [esp + 0x23], dl
movzx eax, dl
mov cl, byte [esp + eax + 0x80]
and cl, 0xe0
cmp cl, 0x80
jne 0x100406c7
mov eax, dword [ebp + 0x21c]
xor esi, esi
push esi
push 0xffffffffffffffff
lea edx, [esp + 0xd8]
push edx
push edi
push eax
call fcn.10039eb0
mov eax, dword [0x1006ab70]
add esp, 0x14
cmp eax, edi
je 0x100406a5
mov ecx, dword [esp + 0x40c]
push esi
push edi
push ecx
push ebp
call fcn.10039d20
mov edx, dword [0x1006c010]
lea ecx, [edx + eax*2]
mov edx, dword [0x1006bbc4]
add esp, 0xc
add ecx, eax
push ecx
push edx
call fcn.10002a70
mov ecx, dword [0x1006bbc4]
push 6
lea eax, [esp + 0x90]
push eax
push ecx
call fcn.100029d0
mov dx, word [esp + 0x98]
mov al, byte [esp + 0x9a]
mov cx, word [esp + 0x9b]
mov dword [esp + 0x34], esi
mov word [esp + 0x34], dx
mov dl, byte [esp + 0x9d]
mov dword [esp + 0x50], esi
mov byte [esp + 0x36], al
mov eax, dword [esp + 0x34]
mov word [esp + 0x50], cx
mov byte [esp + 0x52], dl
mov ebx, dword [esp + 0x50]
sub ebx, eax
add esp, 0x18
cmp ebx, esi
jle 0x10040653
cmp ebx, 0x20
jge 0x10040653
mov ecx, dword [0x1006be9c]
mov edx, dword [0x1006bbc4]
push esi
add eax, ecx
push eax
push edx
call fcn.10002a70
mov ecx, dword [0x1006bbc4]
push ebx
lea eax, [esp + 0x90]
push eax
push ecx
call fcn.100029d0
mov eax, dword [esp + 0x98]
add esp, 0x18
mov dword [0x1006ab70], edi
jmp 0x100406ac
xor edx, edx
mov eax, edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], edx
mov dword [esp + 0x80], eax
mov dword [esp + 0xa4], edx
mov dword [0x1006ab70], edi
jmp 0x100406ac
mov eax, dword [esp + 0x80]
mov cl, al
and cl, 0xe0
cmp cl, 0x80
je 0x1004076d
mov dword [esp + 0x78], 1
jmp case.0x1004071b.0
test byte [esp + eax + 0x83], 0x20
je 0x1004098e
mov esi, dword [esp + 0x40c]
lea edx, [esp + 0xd0]
push edx
push 0xffffffffffffffff
push esi
call fcn.100022a0
mov eax, esi
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100406f4
sub eax, edx
mov dword [esp + 0x18], eax
mov byte [esp + 0x11], 0x60
movzx eax, byte [esp + 0x11]
cmp eax, 0x60
ja case.0x1004071b.1
movzx eax, byte [eax + 0x100418fc]
jmp dword [eax*4 + 0x100418ec]
mov eax, dword [esp + 0x400]
cmp eax, 0x44
jne 0x1004074c
movzx ecx, ch
and ecx, 0xf
push ecx
lea ecx, [esp + 0xd4]
push 0xffffffffffffffff
push ecx
call fcn.1001d310
add esp, 0xc
jmp case.0x10040ac8.5
cmp eax, 0x84
je 0x1004075c
cmp eax, 4
jne case.0x10040ac8.5
movsx edx, si
xor eax, eax
mov al, byte [esp + edx + 0x81]
jmp 0x10040c90
mov dl, ah
and dl, 0xf
cmp dl, 8
je case.0x10040ac8.5
test ah, 0x10
je 0x10040836
mov eax, dword [0x1006be90]
cmp edi, dword [eax + 8]
je 0x100407f9
cmp byte [esp + 0xd0], 0x63
jne 0x100407ae
lea edx, [esp + 0xd5]
mov eax, dword [edx]
mov ecx, 0x10062408
cmp eax, dword [ecx]
je 0x100407f9
cmp dword [esp + 0x404], 2
jne case.0x1003f0f4.5
cmp ebx, 5
jle case.0x10040ac8.5
mov cl, byte [esp + 0x85]
and cl, 0xe0
cmp cl, 0xc0
jne case.0x10040ac8.5
mov edx, dword [esp + 0x400]
and dl, 0xc
cmp dl, 4
jne case.0x10040ac8.5
xor eax, eax
mov al, byte [esp + 0x86]
jmp 0x10040c90
cmp byte [esp + 0x10], 8
jne case.0x1004071b.1
cmp byte [esp + 0x12], 0x40
jne case.0x10040ac8.5
lea eax, [esp + 0xd0]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10040820
sub eax, edx
mov byte [esp + eax + 0xcf], 0x61
jmp case.0x10040ac8.5
mov ecx, dword [esp + 0x400]
add ecx, 0xfffffffc
cmp ecx, 0x80
ja case.0x10040ac8.5
movzx edx, byte [ecx + 0x10041974]
jmp dword [edx*4 + 0x10041960]
movzx eax, ah
and eax, 0xf
push eax
lea eax, [esp + 0xd4]
push 0xffffffffffffffff
push eax
call fcn.1001d310
add esp, 0xc
jmp case.0x10040ac8.5
xor ecx, ecx
mov cl, byte [esp + 0x82]
lea edx, [esp + 0xd0]
and ecx, 0xf
push ecx
push 0xffffffffffffffff
push edx
call fcn.1001d310
add esp, 0xc
jmp case.0x10040ac8.5
xor eax, eax
mov al, byte [esp + 0x83]
jmp 0x10040c90
xor edx, edx
mov dl, byte [esp + 0x82]
lea eax, [esp + 0xd0]
and edx, 0xf
push edx
push 0xffffffffffffffff
push eax
call fcn.1001d310
add esp, 0xc
jmp case.0x10040ac8.5
mov eax, dword [esp + 0x54]
test eax, eax
jne case.0x10041644.69
mov eax, dword [esp + 0x400]
add eax, 0xfffffffc
cmp eax, 0x84
ja case.0x10041644.69
movzx ecx, byte [eax + 0x10041a10]
jmp dword [ecx*4 + 0x100419f8]
movsx edx, word [esp + 0x18]
mov eax, dword [esp + 0x40c]
mov byte [edx + eax - 1], 0x6f
jmp case.0x10041644.69
movsx ecx, word [esp + 0x18]
mov edx, dword [esp + 0x40c]
mov byte [ecx + edx - 1], 0x61
jmp case.0x10041644.69
movsx edx, word [esp + 0x18]
mov eax, dword [esp + 0x40c]
mov byte [edx + eax - 1], 0x69
jmp case.0x10041644.69
mov eax, dword [esp + 0x400]
add eax, 0xfffffffc
cmp eax, 0x84
ja case.0x10041644.69
movzx eax, byte [eax + 0x10041aa4]
jmp dword [eax*4 + 0x10041a98]
movsx ecx, word [esp + 0x18]
mov edx, dword [esp + 0x40c]
mov byte [ecx + edx - 1], 0x65
jmp case.0x10041644.69
movsx eax, word [esp + 0x18]
mov ecx, dword [esp + 0x40c]
mov byte [eax + ecx - 1], 0x69
jmp case.0x10041644.69
mov eax, dword [esp + 0x24]
test eax, eax
je 0x10040acf
movzx eax, dl
mov cl, byte [esp + eax + 0x80]
and cl, 1
lea esi, [esp + eax + 0x80]
dec cl
neg cl
sbb ecx, ecx
inc ecx
lea ecx, [ecx + ecx + 5]
movsx ecx, cx
lea edx, [eax + ecx]
cmp ebx, edx
jle 0x100409f9
lea edx, [esp + edx + 0x80]
mov dword [esp + 0x50], edx
mov dl, byte [edx]
and dl, 0xe0
cmp dl, 0xc0
jne 0x100409f9
cmp byte [esp + 0x12], 0x80
jne 0x100409f9
test byte [esi], 0x10
jne 0x100409f9
mov edx, dword [esp + 0x50]
sub ebx, ecx
mov ecx, ebx
sub ecx, eax
push ecx
push edx
push esi
call fcn.1005881b
add esp, 0xc
mov dl, byte [esp + 0x23]
movzx esi, dl
lea eax, [esp + esi + 0x80]
mov dword [esp + 0x50], eax
mov al, byte [eax]
mov cl, al
and cl, 0xc
cmp dword [esp + 0x404], 2
mov byte [esp + 0x15], cl
jne 0x10040cfb
mov ecx, dword [ebp + 0x34]
mov edx, dword [esp + 0x3fc]
cmp byte [edx + ecx], 4
jne 0x10040cf3
test byte [esp + esi + 0x82], 1
je 0x10040cf3
mov cl, byte [esp + 0x23]
test cl, cl
je 0x10040a71
mov ecx, dword [esp + 0x50]
and al, 1
dec al
neg al
lea edx, [esp + 0x80]
sbb eax, eax
inc eax
lea eax, [eax + eax + 5]
push eax
push ecx
push edx
call fcn.1005881b
add esp, 0xc
lea eax, [esp + 0xd0]
lea edx, [eax + 1]
jmp 0x10040a80
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10040a80
sub eax, edx
movsx edx, ax
lea eax, [esp + edx + 0xd0]
mov ecx, 4
mov edi, str.tore
lea esi, [eax - 4]
xor ebx, ebx
repe cmpsb byte [esi], byte es:[edi]
je 0x10040aab
sbb ebx, ebx
sbb ebx, 0xffffffff
mov ecx, dword [esp + 0x400]
add ecx, 0xfffffffc
cmp ecx, 0x80
ja case.0x10040ac8.5
movzx ecx, byte [ecx + 0x10041b3c]
jmp dword [ecx*4 + 0x10041b2c]
mov al, byte [esp + 0x13]
cmp byte [esp + 0x12], al
je 0x100409fd
movzx ecx, dl
mov dl, byte [esp + ecx + 0x80]
and dl, 0xc
sub dl, 4
neg dl
sbb edx, edx
inc edx
mov dword [esp + 0x30], edx
jmp case.0x1003f261.33
test bx, bx
je 0x10040b09
mov byte [eax - 1], 0x61
jmp case.0x10040ac8.5
mov edx, dword [str.rice]
mov cl, byte [0x10062920]
add eax, 0xfffffffd
mov dword [eax], edx
mov byte [eax + 4], cl
jmp case.0x10040ac8.5
xor edi, edi
cmp bx, di
jne 0x10040b32
mov byte [eax - 1], 0x69
jmp case.0x10040ac8.5
mov ebx, dword [esp + 0x40]
cmp dword [0x1006ab70], ebx
je 0x10040c4e
mov edx, dword [esp + 0x40c]
push edi
push ebx
push edx
push ebp
call fcn.10039d20
mov ecx, dword [0x1006c010]
lea edx, [ecx + eax*2]
add edx, eax
mov eax, dword [0x1006bbc4]
add esp, 0xc
push edx
push eax
call fcn.10002a70
mov edx, dword [0x1006bbc4]
push 6
lea ecx, [esp + 0x90]
push ecx
push edx
call fcn.100029d0
mov ax, word [esp + 0x98]
mov cl, byte [esp + 0x9a]
mov dx, word [esp + 0x9b]
mov dword [esp + 0x34], edi
mov word [esp + 0x34], ax
mov al, byte [esp + 0x9d]
mov dword [esp + 0x50], edi
mov byte [esp + 0x52], al
mov byte [esp + 0x36], cl
mov eax, dword [esp + 0x34]
mov word [esp + 0x50], dx
mov esi, dword [esp + 0x50]
sub esi, eax
add esp, 0x18
cmp esi, edi
jle 0x10040c00
cmp esi, 0x20
jge 0x10040c00
mov ecx, dword [0x1006be9c]
mov edx, dword [0x1006bbc4]
push edi
add eax, ecx
push eax
push edx
call fcn.10002a70
mov ecx, dword [0x1006bbc4]
push esi
lea eax, [esp + 0x90]
push eax
push ecx
call fcn.100029d0
add esp, 0x18
jmp 0x10040c48
xor edx, edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], edx
mov dword [0x1006ab70], ebx
cmp dword [esp + 0x404], 4
jne 0x10040c87
cmp word [esp + 0x28], 3
jne 0x10040c87
mov al, byte [esp + 0x80]
and al, 0xe0
cmp al, 0x80
jne 0x10040c87
push 7
lea ecx, [esp + 0x89]
push ecx
lea edx, [esp + 0x88]
push edx
call fcn.1005881b
add esp, 0xc
xor eax, eax
mov al, byte [esp + 0x81]
and eax, 0xf
push eax
lea ecx, [esp + 0xd4]
push 0xffffffffffffffff
push ecx
call fcn.1001d310
add esp, 0xc
jmp case.0x10040ac8.5
test bx, bx
je 0x10040cda
mov cl, byte [eax - 2]
cmp cl, 0x67
je 0x10040cc6
cmp cl, 0x63
je 0x10040cc6
mov byte [eax - 1], 0x65
jmp case.0x10040ac8.5
mov byte [eax - 1], 0x68
mov byte [eax], 0x65
mov byte [esp + edx + 0xd1], 0
jmp case.0x10040ac8.5
mov edx, dword [str.rici]
mov cl, byte [0x10062918]
add eax, 0xfffffffd
mov dword [eax], edx
mov byte [eax + 4], cl
jmp case.0x10040ac8.5
mov dl, byte [esp + 0x23]
mov cl, byte [esp + 0x15]
cmp byte [esp + 0x10], 8
jne 0x10040dc0
cmp cl, 0xc
je case.0x10040ac8.5
cmp cl, 4
ja 0x10040d43
mov eax, dword [esp + 0x404]
cmp eax, 2
je case.0x10040ac8.5
cmp eax, 4
je case.0x10040ac8.5
cmp eax, 5
je case.0x10040ac8.5
mov dword [esp + 0x30], 0
jmp case.0x1003f261.33
cmp dword [esp + 0x404], 4
jne 0x10040d76
movzx eax, word [esp + esi + 0x85]
push 0
push 0xffffffffffffffff
lea edx, [esp + 0xd8]
push edx
push eax
mov eax, dword [ebp + 0x21c]
push eax
call fcn.10039eb0
add esp, 0x14
jmp case.0x10040ac8.5
cmp ebx, 7
mov dword [esp + 0x30], 0
jle 0x10040db6
mov cl, al
and cl, 0xe0
cmp cl, 0xc0
jne 0x10040db6
and al, 1
dec al
neg al
sbb eax, eax
inc eax
lea eax, [eax + eax + 5]
add esi, eax
mov al, byte [esp + esi + 0x80]
mov dl, al
and dl, 0xe0
cmp dl, cl
jne 0x10040db6
and al, 0xc
cmp al, 0xc
je case.0x10040ac8.5
cmp dword [esp + 0x54], 1
jmp 0x100414cb
cmp byte [esp + 0x17], 1
jne 0x10040df8
cmp ebx, 0xa
jne 0x10040ec3
mov al, byte [esp + 0x80]
and al, 0xe0
cmp al, 0xc0
jne 0x10040ec3
mov al, byte [esp + 0x85]
and al, 0xe0
cmp al, 0xc0
jne 0x10040ec3
mov dl, 5
mov byte [esp + 0x23], dl
cmp cl, 8
jne 0x10040e79
mov eax, dword [esp + 0x404]
cmp eax, 4
je case.0x10040ac8.5
cmp eax, 2
jne 0x10040e75
cmp ebx, 7
jle case.0x10040ac8.5
movzx ecx, byte [esp + 0x23]
mov al, byte [esp + ecx + 0x80]
mov dl, al
and dl, 0xe0
cmp dl, 0xc0
jne case.0x10040ac8.5
and al, 1
dec al
neg al
sbb eax, eax
inc eax
lea eax, [eax + eax + 5]
add ecx, eax
mov al, byte [esp + ecx + 0x80]
mov dl, al
and dl, 0xe0
cmp dl, 0xc0
jne case.0x10040ac8.5
and al, 0xc
cmp al, 0xc
jne case.0x10040ac8.5
xor eax, eax
mov al, byte [esp + ecx + 0x81]
jmp 0x10040c90
mov dl, byte [esp + 0x23]
movzx esi, dl
mov al, byte [esp + esi + 0x81]
and al, 0xf
cmp al, 8
je 0x10040ec3
cmp al, 0xb
je 0x10040ec3
cmp dword [esp + 0x400], 0x88
je 0x10040ec3
test byte [esp + esi + 0x80], 0xc
je case.0x10040ac8.5
movzx edx, al
push edx
lea eax, [esp + 0xd4]
push 0xffffffffffffffff
push eax
call fcn.1001d310
add esp, 0xc
jmp case.0x10040ac8.5
mov ecx, dword [esp + 0x40c]
push 0
push edi
push ecx
push ebp
call fcn.10039d20
mov edx, dword [0x1006babc]
lea ecx, [edx + eax*2]
mov edx, dword [0x1006bbc4]
add esp, 0xc
add ecx, eax
push ecx
push edx
call fcn.10002a70
mov ecx, dword [0x1006bbc4]
push 3
lea eax, [esp + 0x68]
push eax
push ecx
call fcn.100029d0
movzx eax, byte [esp + 0x72]
mov ecx, dword [esp + 0x70]
movzx edx, ch
shl eax, 8
add esp, 0x18
add eax, edx
je 0x10040f3e
cmp cl, 0x6d
je 0x10040f3e
mov edx, dword [ebp + 0x21c]
push 0
push 0xffffffffffffffff
lea ecx, [esp + 0xd8]
push ecx
push eax
push edx
call fcn.10039eb0
add esp, 0x14
jmp case.0x10040ac8.5
mov edi, dword [esp + 0x404]
cmp edi, 2
jne 0x10040f5b
mov al, byte [esp + esi + 0x80]
mov cl, al
and cl, 0xc
cmp cl, 4
je 0x10040f80
mov al, byte [esp + esi + 0x80]
mov cl, al
and cl, 0xc
je 0x10040f80
cmp edi, 4
jne 0x10040f73
cmp cl, 4
je 0x10040f80
mov dword [esp + 0x30], 0
jmp case.0x1003f261.33
cmp ebx, 7
jle 0x10040fcb
mov dl, al
and dl, 0xe0
cmp dl, 0xc0
jne 0x10040fcb
and al, 1
dec al
neg al
sbb eax, eax
inc eax
lea eax, [eax + eax + 5]
add eax, esi
mov cl, byte [esp + eax + 0x80]
and cl, 0xe0
cmp cl, dl
jne 0x10040fcb
xor edx, edx
mov dl, byte [esp + eax + 0x81]
lea eax, [esp + 0xd0]
and edx, 0xf
push edx
push 0xffffffffffffffff
push eax
call fcn.1001d310
add esp, 0xc
mov edx, dword [esp + 0x40c]
lea ecx, [esp + 0xd0]
push ecx
push 0xffffffffffffffff
push edx
jmp 0x1003b2da
cmp dword [esp + 0x404], 2
jne 0x10041030
cmp byte [esp + 0x10], 4
jne case.0x10040ac8.5
test edi, edi
je 0x10040c87
movzx eax, word [esp + 0x408]
cmp edi, eax
je 0x10040c87
mov edx, dword [ebp + 0x21c]
push 0
push 0xffffffffffffffff
lea ecx, [esp + 0xd8]
push ecx
push edi
push edx
call fcn.10039eb0
add esp, 0x14
jmp case.0x10040ac8.5
mov dl, byte [esp + 0x81]
and dl, 0xf
cmp dl, 0xb
jne case.0x1003f0f4.5
cmp byte [esp + 0x10], 4
jne case.0x10040ac8.5
cmp al, 0x62
jne case.0x10040ac8.5
mov ecx, dword [ebp + 0x21c]
push 0
push 0xffffffffffffffff
lea eax, [esp + 0xd8]
push eax
push edi
push ecx
call fcn.10039eb0
add esp, 0x14
jmp case.0x10040ac8.5
mov al, 0xa
jmp 0x1004107d
mov al, 1
mov byte [esp + 0x24], al
movzx ax, al
push 0xffffffffffffffff
lea edx, [esp + 0xd4]
push edx
push edi
push eax
call fcn.10019800
mov esi, dword [esp + 0x34]
add esp, 0x10
cmp dword [esp + 0x404], 4
je case.0x1003f0f4.5
mov cl, byte [esp + 0x12]
cmp byte [esp + 0x13], cl
jne case.0x1003f0f4.5
cmp byte [esp + 0x10], 8
je case.0x10040ac8.5
mov eax, dword [ebp + 0x21c]
push esi
push 0xffffffffffffffff
lea edx, [esp + 0xd8]
push edx
push eax
call fcn.1001a800
mov ecx, dword [ebp + 0x21c]
mov dl, byte [ecx + 0xc]
and dl, 0xe0
add esp, 0x10
cmp dl, 0x80
jne 0x100411a3
cmp dword [esp + 0x400], 0x88
je case.0x10040ac8.5
mov ecx, dword [ebp + 0x21c]
push esi
push 0xffffffffffffffff
lea eax, [esp + 0xd8]
push eax
push ecx
call fcn.1001a800
mov edx, dword [ebp + 0x21c]
mov al, byte [edx + 0xc]
and al, 0xe0
add esp, 0x10
cmp al, 0xc0
je 0x1004109d
mov ebp, edx
mov al, byte [ebp + 0xd]
test al, 0x10
je 0x10041147
mov dword [esp + 0x30], 0
jmp case.0x1003f261.33
mov ecx, dword [esp + 0x400]
sub ecx, 0x44
je 0x10041183
sub ecx, 4
je 0x10041168
sub ecx, 0x3c
jne case.0x10040ac8.5
xor ecx, ecx
mov cl, byte [ebp + 0xe]
jmp 0x10041188
and eax, 0xf
push eax
lea eax, [esp + 0xd4]
push 0xffffffffffffffff
push eax
call fcn.1001d310
add esp, 0xc
jmp case.0x10040ac8.5
xor ecx, ecx
mov cl, byte [ebp + 0xf]
and ecx, 0xf
push ecx
lea edx, [esp + 0xd4]
push 0xffffffffffffffff
push edx
call fcn.1001d310
add esp, 0xc
jmp case.0x10040ac8.5
mov eax, dword [ebp + 0x21c]
mov al, byte [eax + 0xd]
and al, 0xf
cmp al, 8
je case.0x1003f0f4.5
cmp al, 0xb
je case.0x1003f0f4.5
movzx ecx, al
push ecx
lea edx, [esp + 0xd4]
push 0xffffffffffffffff
push edx
call fcn.1001d310
add esp, 0xc
jmp case.0x10040ac8.5
mov eax, dword [esp + 0x40c]
lea edx, [eax + 1]
jmp 0x100411e0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100411e0
sub eax, edx
cmp ax, 4
mov dword [esp + 0x78], eax
jne 0x10041273
mov esi, dword [esp + 0x40c]
mov ecx, 3
mov edi, 0x10062910
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x10041273
mov eax, dword [esp + 0x400]
add eax, 0xffffffbc
cmp eax, 0x44
ja case.0x10041644.69
movzx ecx, byte [eax + 0x10041bd4]
jmp dword [ecx*4 + 0x10041bc0]
mov edx, dword [esp + 0x40c]
mov byte [edx + 3], 0x6f
jmp case.0x10041644.69
mov eax, dword [esp + 0x40c]
mov byte [eax + 3], 0x61
jmp case.0x10041644.69
mov ecx, dword [esp + 0x40c]
mov byte [ecx + 3], 0x69
jmp case.0x10041644.69
mov edx, dword [esp + 0x40c]
mov byte [edx + 3], 0x65
jmp case.0x10041644.69
cmp dword [esp + 0x404], 4
mov bl, 0x74
jne 0x100413a3
mov esi, dword [esp + 0x40c]
xor edi, edi
mov eax, esi
mov dword [esp + 0x30], edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10041295
mov cl, byte [esi]
sub eax, edx
cmp cl, 0x63
jne 0x100412c7
mov cl, byte [esi + 2]
cmp cl, 0x6c
jne 0x100412b4
mov edi, 2
jmp 0x100412c7
cmp cl, 0x73
jne 0x100412c7
cmp byte [esi + 3], bl
jne 0x100412c7
mov edi, 3
mov byte [esi + 3], 0x6c
movsx eax, ax
lea ecx, [edi + 3]
cmp eax, ecx
jne 0x100412dc
mov dl, byte [edi + esi]
cmp dl, 0x6c
lea ecx, [edi + esi]
je 0x100412f6
lea edx, [edi + 4]
cmp eax, edx
jne 0x10041399
cmp byte [edi + esi], 0x6c
lea ecx, [edi + esi]
jne 0x1004132f
cmp byte [ecx + 2], 0x72
jne 0x1004132f
mov eax, dword [esp + 0x400]
add eax, 0xffffffbc
cmp eax, 0x44
ja case.0x10041365.69
movzx edx, byte [eax + 0x10041c2c]
jmp dword [edx*4 + 0x10041c1c]
xor eax, eax
jmp 0x1004137e
mov eax, 1
jmp 0x1004137e
mov eax, 2
jmp 0x1004137e
cmp eax, edx
jne 0x10041399
mov al, byte [edi + esi]
cmp al, 0x65
lea ecx, [edi + esi]
jne 0x10041399
cmp byte [ecx + 2], 0x6c
jne 0x10041399
mov eax, dword [esp + 0x400]
add eax, 0xffffffbc
cmp eax, 0x44
ja case.0x10041365.69
movzx eax, byte [eax + 0x10041c84]
jmp dword [eax*4 + 0x10041c74]
mov eax, 3
jmp 0x1004137e
mov eax, 4
jmp 0x1004137e
mov eax, dword [esp + 0x50]
lea edx, [eax + eax*4 + 0x10068274]
push edx
push 0xffffffffffffffff
push ecx
mov dword [esp + 0x3c], 1
call fcn.100022a0
add esp, 0xc
cmp edi, 3
jne 0x100413bc
mov byte [esi + 3], bl
jmp 0x100413bc
mov al, byte [esp + 0x14]
cmp byte [esp + 0x10], al
je 0x100413f3
mov dword [esp + 0x30], 0
mov esi, dword [esp + 0x40c]
cmp byte [esp + 0x10], 4
jne case.0x1004071b.1
mov al, byte [esi]
cmp al, 0x63
jne 0x100414b5
cmp byte [esi + 2], 0x6c
jne 0x1004149f
cmp word [esp + 0x78], 5
jne 0x1004149f
mov dword [esi + 3], 0x6f726f
jmp case.0x1004071b.1
mov cl, byte [esp + 0x13]
cmp byte [esp + 0x12], cl
jne 0x1004141b
mov al, byte [esp + 0x80]
and al, 3
cmp al, 3
mov dword [esp + 0x30], 1
jne 0x100413b5
cmp byte [esp + 0x12], 0x40
je 0x10041423
jmp 0x100413b5
mov dword [esp + 0x30], 0
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x40c]
push 0
push edx
push esi
push ebp
call fcn.10039d20
mov ecx, dword [0x1006babc]
lea edx, [ecx + eax*2]
add edx, eax
mov eax, dword [0x1006bbc4]
add esp, 0xc
push edx
push eax
call fcn.10002a70
mov edx, dword [0x1006bbc4]
push 3
lea ecx, [esp + 0x68]
push ecx
push edx
call fcn.100029d0
movzx eax, byte [esp + 0x72]
movzx ecx, byte [esp + 0x71]
shl eax, 8
add esp, 0x18
add eax, ecx
je 0x100413bc
mov edx, dword [ebp + 0x21c]
push 0
push 0xffffffffffffffff
push esi
push eax
push edx
call fcn.10039eb0
add esp, 0x14
mov dword [esp + 0x30], 1
jmp 0x100413bc
cmp byte [esi + 3], bl
jne case.0x1004071b.1
cmp word [esp + 0x78], 6
jne case.0x1004071b.1
mov dword [esi + 4], 0x6f726f
jmp case.0x1004071b.1
cmp al, 0x6c
jne case.0x1004071b.1
cmp byte [esi + 2], 0x69
jne case.0x1004071b.1
mov dword [esi + 1], 0x6f726f
cmp dword [esp + 0x30], 3
jne case.0x1003f261.33
mov eax, dword [esp + 0x64]
cmp eax, 1
jne 0x10041506
mov esi, dword [esp + 0x40c]
lea eax, [esp + 0x6c]
push eax
push 0xffffffffffffffff
push esi
call fcn.100022a0
lea ecx, [esp + 0xdc]
push ecx
push 0xffffffffffffffff
push esi
call fcn.10002250
add esp, 0x18
jmp case.0x10041644.69
cmp eax, 2
jne 0x1003b2c8
lea eax, [esp + 0xd0]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10041520
sub eax, edx
mov edx, eax
lea eax, [esp + 0x6c]
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10041532
sub eax, esi
movsx eax, ax
movsx ecx, dx
mov dl, byte [esp + eax + 0x6a]
cmp dl, 0x69
mov bl, byte [esp + ecx + 0xcf]
lea eax, [esp + eax + 0x6c]
lea ecx, [esp + ecx + 0xd0]
jne 0x1004156f
cmp bl, 0x69
je 0x10041566
cmp bl, 0x65
jne 0x1004156f
mov byte [eax - 2], bl
mov byte [eax - 1], 0
jmp 0x10041572
mov byte [eax - 1], bl
cmp byte [ecx - 2], 0x68
jne 0x10041585
cmp byte [esp + 0x6c], 0x69
je 0x10041585
mov byte [ecx - 2], 0
jmp 0x10041589
mov byte [ecx - 1], 0
mov esi, dword [esp + 0x40c]
lea edx, [esp + 0xd0]
push edx
push 0xffffffffffffffff
push esi
call fcn.100022a0
mov eax, esi
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100415a8
mov cl, byte [esp + 0x6c]
sub eax, edx
cmp cl, 0x69
jne 0x100415dd
cmp bl, 0x65
je 0x100415dd
movsx ecx, ax
mov dl, byte [ecx + esi - 1]
add ecx, esi
cmp dl, 0x63
je 0x100415d2
cmp dl, 0x67
jne 0x100415dd
inc eax
movsx edx, ax
mov byte [ecx], 0x68
mov byte [edx + esi], 0
mov cl, byte [esp + 0x6c]
movsx eax, ax
cmp cl, byte [eax + esi - 1]
jne 0x100415f1
lea edx, [esp + 0x6d]
push edx
jmp 0x100415f6
lea eax, [esp + 0x6c]
push eax
push 0xffffffffffffffff
push esi
call fcn.10002250
mov eax, dword [esp + 0x410]
add esp, 0xc
cmp eax, 1
jne case.0x10041644.69
cmp byte [esp + 0x6e], 0x73
jne case.0x10041644.69
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10041621
mov ecx, dword [esp + 0x400]
add ecx, 0xffffffbc
sub eax, edx
cmp ecx, 0x44
ja case.0x10041644.69
movzx ecx, byte [ecx + 0x10041ce0]
jmp dword [ecx*4 + 0x10041ccc]
movsx edx, ax
mov byte [edx + esi - 1], 0x6f
jmp case.0x10041644.69
movsx eax, ax
mov byte [eax + esi - 1], 0x61
jmp case.0x10041644.69
movsx ecx, ax
mov byte [ecx + esi - 1], 0x69
jmp case.0x10041644.69
movsx edx, ax
mov byte [edx + esi - 1], 0x65
jmp case.0x10041644.69