Function at 0x10020546
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa6c
mov eax, dword [0x100542d0]
mov edx, dword [ebp + 0xc]
push ebx
mov dword [esp + 0xa6c], eax
push esi
mov eax, edx
push edi
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100201c3
sub eax, esi
mov esi, eax
cmp si, 0x60
mov dword [esp + 0x14], esi
jae case.0x10023f05.98
cmp si, 4
jne 0x100201fd
cmp byte [edx], 0x6c
jne 0x100201fd
cmp byte [edx + 1], 0x75
jne 0x100201fd
cmp byte [edx + 2], 0x63
jne 0x100201fd
cmp byte [edx + 3], 0x61
je case.0x10023f05.98
push edx
lea eax, [esp + 0x274]
push 0xffffffffffffffff
push eax
call fcn.100396c0
add esp, 0xc
cmp si, 3
mov ebx, 6
jne 0x10020286
mov ebx, 4
mov edi, 0x1004f540
lea esi, [esp + 0x270]
mov ecx, ebx
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x10020251
push str.sono
lea eax, [esp + 0x274]
push 0xffffffffffffffff
push eax
call fcn.100396c0
mov dword [esp + 0x20], ebx
jmp 0x10020412
mov edi, 0x1004f53c
lea esi, [esp + 0x270]
mov ecx, ebx
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x100203a7
push str.hanno
lea eax, [esp + 0x274]
push 0xffffffffffffffff
push eax
call fcn.100396c0
mov dword [esp + 0x20], ebx
jmp 0x10020412
cmp si, bx
jne 0x100202c7
mov edi, str.pensan
lea esi, [esp + 0x270]
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x10020415
push str.pensano
lea eax, [esp + 0x274]
push 0xffffffffffffffff
push eax
call fcn.100396c0
mov dword [esp + 0x20], 7
jmp 0x10020412
cmp si, 8
jne 0x10020309
mov edi, str.ingegner
lea esi, [esp + 0x270]
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x10020415
push str.ingegnere
lea eax, [esp + 0x274]
push 0xffffffffffffffff
push eax
call fcn.100396c0
mov dword [esp + 0x20], 9
jmp 0x10020412
cmp si, 5
jne 0x100203d9
mov edi, str.veder
lea esi, [esp + 0x270]
mov ecx, ebx
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x10020344
push str.vedere
lea eax, [esp + 0x274]
push 0xffffffffffffffff
push eax
call fcn.100396c0
mov dword [esp + 0x20], ebx
jmp 0x10020412
mov edi, str.voler
lea esi, [esp + 0x270]
mov ecx, ebx
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x10020375
push str.volere
lea eax, [esp + 0x274]
push 0xffffffffffffffff
push eax
call fcn.100396c0
mov dword [esp + 0x20], ebx
jmp 0x10020412
mov edi, str.venir
lea esi, [esp + 0x270]
mov ecx, ebx
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x10020415
push str.venire
lea eax, [esp + 0x274]
push 0xffffffffffffffff
push eax
call fcn.100396c0
mov dword [esp + 0x20], ebx
jmp 0x10020412
mov edi, 0x1004f4e0
lea esi, [esp + 0x270]
mov ecx, ebx
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x10020415
push str.comunque
lea eax, [esp + 0x274]
push 0xffffffffffffffff
push eax
call fcn.100396c0
mov dword [esp + 0x20], 8
jmp 0x10020412
cmp si, 4
jne 0x10020415
mov edi, str.vien
lea esi, [esp + 0x270]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x10020415
push str.viene
lea eax, [esp + 0x274]
push 0xffffffffffffffff
push eax
call fcn.100396c0
mov dword [esp + 0x20], 5
add esp, 0xc
mov ebx, dword [ebp + 8]
lea ecx, [esp + 0x270]
mov edx, ecx
push edx
lea eax, [esp + 0x174]
push 0xffffffffffffffff
push eax
mov dword [esp + 0x18], 0xf42400
mov dword [ebx + 0x324], ecx
call fcn.100396c0
mov al, byte [ebx + 0x318]
add esp, 0xc
cmp al, 1
jne 0x100204f1
mov al, byte [ebx + 0x20e]
test al, al
jne 0x10020499
mov byte [ebx + 0x20d], al
movzx eax, word [esp + 0x14]
test eax, eax
mov word [ebx + 0x210], 0xffff
mov byte [ebx + 0x20e], 1
jl 0x100204f8
lea ecx, [eax + 1]
mov edx, ecx
shr ecx, 2
lea edi, [ebx + 0x212]
lea esi, [esp + 0x270]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x100204f8
cmp al, 2
jne 0x100204f8
xor eax, eax
lea edi, [ebx + 0x212]
jmp 0x100204b0
mov cl, byte [esp + eax + 0x270]
cmp cl, byte [edi + eax]
jne 0x100204c2
inc eax
cmp eax, 5
jl 0x100204b0
cmp eax, 4
jge 0x100204f8
movzx eax, word [esp + 0x14]
test eax, eax
mov byte [ebx + 0x20e], 1
jl 0x100204f8
lea ecx, [eax + 1]
mov edx, ecx
shr ecx, 2
lea esi, [esp + 0x270]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x100204f8
mov byte [ebx + 0x20e], 0
mov edx, dword [esp + 0x14]
movzx ecx, dx
mov al, byte [esp + ecx + 0x16f]
cmp al, 0x84
jbe case.0x1002052b.225
movzx eax, al
add eax, 0xffffff20
cmp eax, 0x19
lea esi, [esp + 0x270]
mov dword [ebx + 0x324], esi
ja case.0x1002052b.225
movzx eax, byte [eax + 0x100242f8]
jmp dword [eax*4 + 0x100242e0]
mov byte [esp + ecx + 0x16f], 0x7b
jmp case.0x1002052b.225
mov byte [esp + ecx + 0x16f], 0x7c
jmp case.0x1002052b.225
mov byte [esp + ecx + 0x16f], 0x7d
jmp case.0x1002052b.225
mov byte [esp + ecx + 0x16f], 0x7e
jmp case.0x1002052b.225
mov byte [esp + ecx + 0x16f], 0x7f
xor eax, eax
cmp dx, ax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x58], eax
mov word [ebx + 4], ax
mov word [ebx + 8], ax
mov word [ebx + 6], ax
mov byte [ebx], al
mov byte [ebx + 3], al
mov byte [ebx + 2], al
mov byte [ebx + 1], al
je case.0x10023f05.98
cmp dx, 1
jne 0x100205f1
mov al, byte [esp + 0x170]
cmp al, 0x61
jb case.0x10023f05.98
cmp al, 0x7a
ja case.0x10023f05.98
push 0xffffffffffffffff
lea ecx, [esp + 0x174]
push ecx
push ebx
call fcn.10017450
add esp, 0xc
mov byte [ebx], 0x80
mov byte [ebx + 0xc], 0xd4
mov byte [ebx + 0xd], 0xb
mov byte [ebx + 0xe], 0x10
mov byte [ebx + 0xf], 0
mov word [ebx + 0xa], 5
mov eax, 0x989680
mov ecx, dword [esp + 0xa74]
call fcn.10049461
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov word [ebx + 0x314], ax
cmp byte [esp + ecx + 0x16f], 0x27
mov byte [ebx + 0x312], 0xff
je 0x10020624
push 0xffffffffffffffff
lea edx, [esp + 0x174]
push edx
push ebx
call fcn.1002be50
mov edx, dword [esp + 0x20]
add esp, 0xc
mov dword [esp + 0xc], eax
movzx eax, dx
cmp byte [esp + eax + 0x16f], 0x27
jne 0x10020884
lea eax, [esp + 0x170]
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10020640
sub eax, edx
cmp eax, 3
mov dword [esp + 0x4c], eax
jle 0x10020884
mov cl, byte [esp + eax + 0x16e]
cmp cl, 0x6e
lea eax, [esp + eax + 0x170]
mov dword [esp + 0x5c], 0x6569616f
mov dword [esp + 0x40], 0
mov dword [esp + 0x50], eax
jne 0x10020695
cmp byte [eax - 3], 0x75
jne 0x10020695
mov byte [esp + 0x5c], 0x61
mov byte [esp + 0x5d], 0x6f
mov dword [esp + 0x40], 1
mov cl, byte [esp + 0x170]
cmp cl, 0x6e
je 0x100206ba
cmp cl, 0x71
je 0x100206ba
cmp cl, 0x64
jne 0x10020744
cmp dword [esp + 0x4c], 7
jge 0x10020744
mov edi, str.quand
lea esi, [esp + 0x170]
mov ecx, 7
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x100206db
mov byte [esp + 0x175], 0x6f
jmp 0x1002071b
mov edi, str.null
lea esi, [esp + 0x170]
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x100206fc
mov byte [esp + 0x174], 0x61
jmp 0x1002071b
mov edi, str.dov
lea esi, [esp + 0x170]
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x1002071b
mov byte [esp + 0x173], 0x65
push 0xffffffffffffffff
lea ecx, [esp + 0x174]
push ecx
push ebx
call fcn.1002be50
add esp, 0xc
cmp eax, 0xf42400
mov dword [esp + 0xc], eax
jne 0x10024239
mov cl, byte [esp + 0x170]
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x50]
xor esi, esi
mov edi, edi
cmp si, 4
jae 0x100207b3
movzx edx, si
mov al, byte [esp + edx + 0x5c]
push 0xffffffffffffffff
lea ecx, [esp + 0x174]
push ecx
push ebx
mov byte [edi - 1], al
call fcn.10017450
add esp, 0xc
cmp eax, 0xf42400
mov dword [esp + 0xc], eax
je 0x1002078c
cmp byte [ebx + 0xc], 0x63
je 0x10024239
mov edi, dword [esp + 0x50]
push 0xffffffffffffffff
lea edx, [esp + 0x174]
push edx
push ebx
call fcn.1002be50
mov cl, byte [esp + 0x17c]
add esp, 0xc
cmp eax, 0xf42400
mov dword [esp + 0xc], eax
je 0x100207ee
jmp 0x100207be
cmp eax, 0xf42400
je 0x10020884
xor eax, eax
mov al, byte [ebx + 0xc]
and eax, 0xe0
cmp eax, 0x80
je 0x100207f4
cmp eax, 0xe0
jne 0x100207db
cmp cl, 0x71
je 0x1002084f
cmp si, 3
mov eax, 0xf42400
mov dword [esp + 0xc], eax
jae 0x10020884
inc esi
jmp 0x10020750
test byte [ebx + 0xd], 0x40
je 0x1002082e
mov al, byte [ebx + 0xc]
and al, 0x1c
cmp al, 0x1c
jne 0x10020836
cmp cl, 0x64
je 0x1002081b
cmp byte [edi - 3], 0x6e
jne 0x1002081b
cmp byte [edi - 2], 0x74
jne 0x1002081b
mov eax, 3
jmp 0x1002083a
cmp cl, 0x71
jne 0x1002082e
cmp dword [esp + 0x4c], 7
jne 0x1002082e
mov eax, 3
jmp 0x1002083a
mov dword [esp + 0xc], 0xf42400
mov eax, dword [esp + 0x40]
and byte [ebx + 0xc], 0xfd
movzx ecx, si
cmp byte [esp + ecx + 0x5c], 0x69
jne 0x10020853
mov eax, 3
jmp 0x10020853
mov eax, dword [esp + 0x40]
cmp eax, 1
mov byte [ebx], 0
jne 0x10020866
cmp byte [edi - 1], 0x6f
jne 0x10020884
mov byte [ebx], 2
jmp 0x10020884
test eax, eax
jne 0x10020884
mov al, byte [ebx + 0xf]
and al, 8
mov byte [ebx + 0x10], 2
mov byte [ebx + 0xd], 5
mov byte [ebx + 0xe], 8
mov byte [ebx + 0xf], al
mov word [ebx + 0xa], 5
movzx esi, word [esp + 0x14]
cmp byte [esp + esi + 0x26f], 0x27
mov edi, dword [esp + 0xc]
jne 0x100208b4
cmp edi, 0xf42400
jne 0x100208bc
mov eax, edi
mov ecx, dword [esp + 0xa74]
call fcn.10049461
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, 0xf42400
je 0x100208e5
cmp dword [ebx + 0x31c], 1
jne 0x100208e5
mov cl, byte [ebx + 0xc]
mov dl, cl
and dl, 0xe0
cmp dl, 0xc0
jne 0x100208e5
test cl, 0xc
jne 0x100208e5
cmp byte [esp + esi + 0x16f], 0x7c
jne case.0x10023f05.98
mov eax, dword [ebx + 0x31c]
test eax, eax
jne 0x100209ef
cmp edi, 0xf42400
jne 0x100209ef
lea ecx, [esp + 0x170]
lea esi, [ecx + 1]
lea esp, [esp]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x10020910
sub ecx, esi
cmp byte [esp + ecx + 0x16f], 0x72
jne 0x100209ef
lea eax, [esp + 0x170]
push eax
lea ecx, [esp + 0x74]
push 0xffffffffffffffff
push ecx
call fcn.100396c0
push 0x1004f4b0
lea edx, [esp + 0x80]
push 0xffffffffffffffff
push edx
call fcn.10039670
push 0xffffffffffffffff
lea eax, [esp + 0x8c]
push eax
push ebx
call fcn.1002be50
add esp, 0x24
cmp eax, 0xf42400
mov dword [esp + 0xc], eax
je 0x100209e6
mov cl, byte [ebx + 0xc]
lea edi, [ebx + 0xc]
and cl, 0xe0
xor eax, eax
cmp cl, 0x80
jne 0x10020982
mov eax, 5
movzx edx, ax
mov cl, byte [edx + ebx + 0xc]
mov dl, cl
and dl, 0xe0
cmp dl, 0xc0
jne 0x100209a7
cmp ax, word [ebx + 0xa]
jae 0x100209a7
and cl, 1
dec cl
neg cl
sbb ecx, ecx
inc ecx
lea eax, [eax + ecx*2 + 5]
movzx ecx, ax
mov dl, byte [ecx + ebx + 0xc]
lea esi, [ecx + ebx + 0xc]
and dl, 0xe0
cmp dl, 0x20
jne 0x100209e6
xor ecx, ecx
mov cx, word [ebx + 0xa]
cmp ax, cx
jae 0x100209e6
test ax, ax
je 0x100209de
sub ecx, eax
movzx eax, cx
push eax
push esi
push edi
mov word [ebx + 0xa], cx
call fcn.1002be50
add esp, 0xc
mov byte [ebx], 0
jmp 0x10024239
mov edi, 0xf42400
mov dword [esp + 0xc], edi
lea ecx, [esp + 0x170]
lea esi, [ecx + 1]
lea esp, [esp]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x10020a00
mov eax, dword [ebx + 0x31c]
sub ecx, esi
test eax, eax
mov cl, byte [esp + ecx + 0x16f]
jne 0x10020b71
cmp edi, 0xf42400
jne 0x10020b26
cmp cl, 0x62
jb 0x10020a34
cmp cl, 0x64
jbe 0x10020a96
cmp cl, 0x66
jb 0x10020a3e
cmp cl, 0x68
jbe 0x10020a96
cmp cl, 0x6a
jb 0x10020a48
cmp cl, 0x6e
jbe 0x10020a96
cmp cl, 0x70
jb 0x10020a52
cmp cl, 0x74
jbe 0x10020a96
cmp cl, 0x76
jb 0x10020a5c
cmp cl, 0x7a
jbe 0x10020a96
cmp cl, 0x42
jb 0x10020a66
cmp cl, 0x44
jbe 0x10020a96
cmp cl, 0x46
jb 0x10020a70
cmp cl, 0x48
jbe 0x10020a96
cmp cl, 0x4a
jb 0x10020a7a
cmp cl, 0x4e
jbe 0x10020a96
cmp cl, 0x50
jb 0x10020a84
cmp cl, 0x54
jbe 0x10020a96
cmp cl, 0x56
jb 0x10020b26
cmp cl, 0x5a
ja 0x10020b26
cmp cl, 0x72
je 0x10020aa4
cmp cl, 0x6c
jne 0x10020b26
lea ecx, [esp + 0x170]
push ecx
lea edx, [esp + 0x74]
push 0xffffffffffffffff
push edx
call fcn.100396c0
push 0x1004f4b0
lea eax, [esp + 0x80]
push 0xffffffffffffffff
push eax
call fcn.10039670
push 0xffffffffffffffff
lea ecx, [esp + 0x8c]
push ecx
push ebx
call fcn.1002be50
mov edi, eax
add esp, 0x24
cmp edi, 0xf42400
mov dword [esp + 0xc], edi
je 0x10020b26
mov dl, byte [ebx + 0xc]
and dl, 0xe0
xor ecx, ecx
cmp dl, 0x80
jne 0x10020aff
mov ecx, 5
movzx eax, cx
mov dl, byte [eax + ebx + 0xc]
lea esi, [eax + ebx]
and dl, 0xe0
cmp dl, 0xc0
jne 0x10020b1d
cmp cx, word [ebx + 0xa]
jae 0x10020b1d
test byte [esi + 0xd], 0x40
jne 0x10020b26
mov edi, 0xf42400
mov dword [esp + 0xc], edi
mov eax, dword [ebx + 0x31c]
test eax, eax
jne 0x10020b71
cmp edi, 0xf42400
je 0x10020b7d
mov cl, byte [ebx + 0xc]
and cl, 0xe0
cmp cl, 0xc0
jne 0x10020b4c
mov al, byte [ebx + 0xd]
and al, 0xf
cmp al, 0xb
je 0x10020b6e
cmp cl, 0x60
jne 0x10020b71
mov cl, byte [ebx + 0xe]
and cl, 0xe0
cmp cl, 0xc0
jne 0x10020b71
cmp word [ebx + 0xa], 2
jbe 0x10020b71
mov dl, byte [ebx + 0xf]
and dl, 0xf
cmp dl, 0xb
jne 0x10020b71
mov byte [ebx], 0x80
cmp edi, 0xf42400
jne 0x10024239
cmp word [0x1006102a], 0x64
je 0x10020b9b
mov ax, word [ebx + 0x314]
add ax, 4
mov word [ebx + 0x316], ax
jmp 0x10020ba4
mov word [ebx + 0x316], 0
lea ecx, [esp + 0x170]
push ecx
push ebx
call fcn.1001ec50
add esp, 8
cmp eax, 0xf42400
mov dword [esp + 0xc], eax
jne 0x10024239
mov edi, dword [esp + 0x14]
cmp di, 2
jbe 0x10020e2f
cmp di, 3
jbe 0x10020dd8
movzx esi, di
cmp byte [esp + esi + 0x16d], 0x6e
jne 0x10020dd8
cmp byte [esp + esi + 0x16e], 0x74
jne 0x10020dd8
mov eax, dword [ebx + 0x31c]
test eax, eax
je 0x10020c1f
cmp di, 7
jb 0x10020c1f
movsx edx, word [ebx + 0x316]
mov eax, esi
sub eax, edx
cmp eax, 4
jg 0x10020dd8
mov al, byte [esp + esi + 0x16c]
cmp al, 0x61
mov cl, byte [esp + esi + 0x16f]
mov byte [esp + 0x34], al
mov byte [esp + 0x44], cl
je 0x10020c41
cmp al, 0x65
jne 0x10020dd8
cmp cl, 0x65
je 0x10020c4f
cmp cl, 0x69
jne 0x10020dd8
cmp cl, 0x69
jne 0x10020cb4
lea ecx, [esp + 0x170]
push ecx
lea edx, [esp + 0x74]
push 0xffffffffffffffff
push edx
call fcn.100396c0
push 0xffffffffffffffff
lea eax, [esp + 0x80]
push eax
push ebx
mov byte [esp + esi + 0x87], 0x65
call fcn.1002be50
add esp, 0x18
cmp eax, 0xf42400
mov dword [esp + 0xc], eax
je 0x10020cb4
mov cl, byte [ebx + 0xc]
and cl, 0xe0
cmp cl, 0x40
jne 0x10020cb4
mov al, byte [ebx + 0xd]
mov dl, al
and dl, 0xe0
cmp dl, 0x80
jne 0x10020cb4
and al, 0x18
cmp al, 0x18
je 0x10024239
mov edi, dword [esp + 0x14]
movzx esi, di
cmp byte [esp + esi + 0x16b], 0x69
jne 0x10020ccf
cmp byte [esp + esi + 0x16c], 0x61
jne 0x10020dd8
lea eax, [esp + 0x170]
push eax
lea ecx, [esp + 0x74]
push 0xffffffffffffffff
push ecx
call fcn.100396c0
mov al, byte [esp + 0x40]
add esp, 0xc
cmp al, 0x61
lea edi, [esp + esi + 0x6c]
mov byte [edi], 0
je 0x10020d09
cmp al, 0x65
jne 0x10020d1f
mov edx, dword [0x10052034]
push edx
push 0xffffffffffffffff
lea eax, [esp + 0x78]
push eax
jmp 0x10020d17
mov ecx, dword [0x10052038]
push ecx
push 0xffffffffffffffff
lea edx, [esp + 0x78]
push edx
call fcn.10039670
add esp, 0xc
or byte [ebx + 6], 0x10
push 0xffffffffffffffff
lea eax, [esp + 0x74]
push eax
push ebx
mov word [ebx + 8], 0x30
call fcn.1002be50
mov esi, eax
add esp, 0xc
cmp esi, 0xf42400
mov dword [esp + 0xc], esi
jne 0x10020d7e
mov ecx, dword [0x10052030]
push ecx
lea edx, [esp + 0x74]
push 0xffffffffffffffff
push edx
mov byte [edi], 0
call fcn.10039670
push 0xffffffffffffffff
lea eax, [esp + 0x80]
push eax
push ebx
call fcn.1002be50
mov esi, eax
add esp, 0x18
cmp esi, 0xf42400
mov dword [esp + 0xc], esi
je 0x10020dd8
mov dl, byte [ebx + 0xc]
and dl, 0xe0
xor ecx, ecx
cmp dl, 0x80
jne 0x10020d90
mov ecx, 5
movzx eax, cx
mov al, byte [eax + ebx + 0xc]
mov dl, al
and dl, 0xe0
cmp dl, 0xc0
jne 0x10020db4
cmp word [ebx + 0xa], cx
jbe 0x10020db4
and al, 1
dec al
neg al
sbb eax, eax
inc eax
lea ecx, [ecx + eax*2 + 5]
movzx eax, cx
mov dl, byte [eax + ebx + 0xc]
lea edi, [eax + ebx + 0xc]
and dl, 0xe0
cmp dl, 0x20
jne 0x10020dd0
mov ax, word [ebx + 0xa]
cmp ax, cx
ja 0x10020de9
mov dword [esp + 0xc], 0xf42400
xor esi, esi
mov dword [esp + 0x50], 0x5c
xor edi, edi
jmp 0x10021c42
cmp esi, 0xf42400
je 0x10020dd8
test cx, cx
je 0x10020e0d
sub eax, ecx
mov word [ebx + 0xa], ax
movzx eax, ax
push eax
lea eax, [ebx + 0xc]
push edi
push eax
call fcn.1002be50
add esp, 0xc
lea ecx, [esp + 0x70]
push ecx
lea edx, [ebx + 0x10c]
push 0xffffffffffffffff
push edx
call fcn.100396c0
add esp, 0xc
mov byte [ebx + 1], 0x30
mov byte [ebx], 1
jmp 0x10024239
mov eax, dword [esp + 0x14]
cmp ax, 4
mov esi, dword [0x10060f64]
movzx ecx, ax
mov byte [esp + ecx + 0x170], 0
mov dword [esp + 0x1c], esi
jbe 0x10021154
mov al, byte [ebx + 0x318]
test al, al
jne 0x10021154
mov dl, byte [esp + 0x170]
cmp dl, 0x7a
movzx ecx, dl
mov ax, word [esi + ecx*2 - 0xc2]
movzx ecx, word [esi + ecx*2 - 0xc0]
mov dword [esp + 0x28], ecx
je 0x10021154
cmp cx, ax
jbe 0x10021154
cmp cx, 0x7d0
ja 0x10021154
cmp ax, 0x7d0
ja 0x10021154
add esi, 0x34
cmp ax, cx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], eax
jae 0x10021154
lea esp, [esp]
movzx esi, word [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov dl, byte [esp + 0x171]
add eax, esi
mov cl, byte [eax + 1]
cmp cl, dl
lea edi, [eax + 1]
ja 0x10021154
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10020ee3
sub eax, edx
dec eax
movzx ecx, ax
mov dword [esp + 0x48], eax
movzx eax, word [esp + 0x14]
sub eax, ecx
dec eax
cmp eax, 3
mov dword [esp + 0xc], ecx
jl 0x10021139
cmp word [esp + 0x48], 0
je 0x10020f47
mov eax, ecx
mov dl, byte [esp + eax + 0x170]
add esi, eax
mov eax, dword [esp + 0x1c]
cmp dl, byte [esi + eax]
jne 0x10021139
cmp word [esp + 0x48], 1
je 0x10020f47
mov ecx, dword [esp + 0xc]
dec ecx
lea esi, [esp + 0x171]
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x10021139
lea eax, [esp + 0x170]
push eax
call fcn.10016bf0
add esp, 4
test al, al
je 0x10021139
mov eax, dword [esp + 0xc]
lea eax, [esp + eax + 0x171]
push 0
push eax
call fcn.100193d0
add esp, 8
test ax, ax
je 0x10021139
mov eax, dword [esp + 0xc]
push 0xffffffffffffffff
lea eax, [esp + eax + 0x175]
push eax
push ebx
call fcn.1002be50
add esp, 0xc
cmp eax, 0xf42400
je 0x10021139
mov cl, byte [ebx + 0xc]
and cl, 0xe0
xor eax, eax
cmp cl, 0x40
mov dword [esp + 0x4c], eax
mov byte [esp + 0x44], cl
je 0x10020ffe
cmp cl, 0x80
jne 0x10020fbf
add eax, 5
jmp 0x10020fdd
cmp cl, 0xc0
jne 0x10021154
movzx ecx, ax
mov dl, byte [ecx + ebx + 0xc]
and dl, 1
dec dl
neg dl
sbb edx, edx
inc edx
lea eax, [eax + edx*2 + 5]
cmp ax, word [ebx + 0xa]
mov dword [esp + 0x4c], eax
jae 0x10021154
movzx ecx, ax
mov cl, byte [ecx + ebx + 0xc]
and cl, 0xe0
cmp cl, 0x40
mov byte [esp + 0x44], cl
jne 0x10020fb5
cmp word [esp + 0x58], 0
jle 0x100210a9
movzx edx, ax
mov cl, byte [edx + ebx + 0xd]
lea edi, [edx + ebx]
and cl, 0xe0
cmp cl, 0x80
je 0x100210a9
cmp cl, 0x60
je 0x100210a9
lea esi, [esp + 0x170]
lea edx, [esi + 1]
mov cl, byte [esi]
inc esi
test cl, cl
jne 0x10021033
sub esi, edx
mov cl, byte [esp + esi + 0x270]
mov byte [esp + 0x34], cl
lea esi, [edi + 0xc]
mov ecx, 0x14
lea edi, [esp + 0x370]
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
mov cx, word [ebx + 0xa]
sub cx, ax
mov eax, dword [esp + 0xc]
lea eax, [esp + eax + 0x171]
push eax
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x50]
push edx
push eax
push ebx
mov dword [esp + 0x4c], ecx
call fcn.10018d30
add esp, 0x10
test ax, ax
je 0x10021154
mov ecx, 0x14
lea esi, [esp + 0x370]
lea edi, [ebx + 0xc]
rep movsd dword es:[edi], dword [esi]
mov cx, word [esp + 0x3c]
mov word [ebx + 0xa], cx
xor eax, eax
movzx edx, ax
lea edx, [edx + ebx + 0xc]
mov esi, edx
mov ecx, 0x14
lea edi, [esp + 0x370]
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
mov cx, word [ebx + 0xa]
sub cx, ax
push 0xffffffffffffffff
lea eax, [esp + 0x74]
push eax
push edx
mov dword [esp + 0x48], ecx
call fcn.10017630
mov ecx, dword [esp + 0x18]
inc ecx
mov edx, ecx
shr ecx, 2
lea eax, [ebx + 0xc]
mov edi, eax
lea esi, [esp + 0x17c]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x7c]
and ecx, 3
push edx
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1c]
push 0xffffffffffffffff
push eax
mov byte [ecx + ebx + 0xd], 0
call fcn.10039670
lea esi, [ebx + 0xc]
push esi
lea eax, [esp + 0x48c]
push 0xffffffffffffffff
push eax
call fcn.100396c0
push 0xffffffffffffffff
push esi
push ebx
call fcn.1002be50
add esp, 0x30
cmp eax, 0xf42400
mov dword [esp + 0xc], eax
jne 0x100211b7
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x48]
lea eax, [ecx + edx + 2]
cmp ax, word [esp + 0x28]
mov dword [esp + 0x24], eax
jb 0x10020ec0
cmp word [esp + 0x58], 0
jg 0x10022fe8
mov eax, dword [esp + 0x14]
cmp ax, 7
jbe 0x10021246
movzx eax, ax
cmp byte [esp + eax + 0x16f], 0x69
jne 0x10021246
cmp byte [esp + eax + 0x16d], 0x69
jne 0x10021246
cmp byte [esp + eax + 0x16e], 0x73
jne 0x10021246
mov al, byte [esp + eax + 0x16c]
cmp al, 0x76
je 0x100211ae
cmp al, 0x63
jne 0x10021246
mov byte [ebx + 3], 1
jmp 0x100212f2
mov al, byte [ebx + 0xc]
mov cl, al
xor esi, esi
and cl, 0xe0
cmp cl, 0xc0
mov dword [esp + 0x38], esi
jne 0x100211db
and al, 1
dec al
neg al
sbb eax, eax
inc eax
lea esi, [eax + eax + 5]
mov dword [esp + 0x38], esi
movzx edx, si
test byte [edx + ebx + 0xd], 0x40
jne 0x10021154
mov esi, dword [esp + 0x38]
lea ecx, [ecx]
movzx eax, si
lea edx, [eax + ebx]
mov al, byte [edx + 0xc]
mov cl, al
and cl, 0xe0
cmp cl, 0x20
jne 0x1002121b
test byte [edx + 0xd], 0x38
je 0x10022f57
cmp cl, cl
jne 0x1002121b
test byte [edx + 0xd], 0x40
je 0x10022f57
cmp cl, 0xc0
jne 0x10021154
cmp word [ebx + 0xa], 5
jbe 0x10021154
mov ecx, dword [esp + 0x38]
and al, 1
dec al
neg al
sbb eax, eax
inc eax
lea esi, [ecx + eax*2 + 5]
mov dword [esp + 0x38], esi
jmp 0x100211f0
mov al, byte [ebx + 0x318]
test al, al
jne 0x10021528
cmp word [esp + 0x14], 6
jbe 0x10021528
movzx eax, word [esp + 0x14]
lea esi, [esp + eax + 0x16d]
mov ax, word [esi]
mov edx, 0x1004f4ac
cmp ax, word [edx]
je 0x1002128d
mov ecx, 3
mov edi, 0x1004f4a8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x10021528
movzx ecx, word [esp + 0x14]
mov al, byte [esp + ecx + 0x16f]
cmp al, 0x61
je 0x100212ad
cmp al, 0x65
je 0x100212ad
cmp al, 0x69
je 0x100212ad
cmp al, 0x6f
jne 0x10021528
mov al, byte [esp + ecx + 0x16c]
cmp al, 0x6d
je 0x100212f2
cmp al, 0x74
jne 0x100212c6
cmp byte [esp + ecx + 0x16b], 0x65
jne 0x100212f2
cmp al, 0x73
je 0x100212f2
cmp al, 0x63
je 0x100212f2
cmp al, 0x76
je 0x100212f2
movzx eax, word [esp + 0x14]
lea esi, [esp + eax + 0x16a]
mov ecx, 3
mov edi, 0x1004f14c
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x10021528
mov edi, dword [esp + 0x14]
movzx esi, di
lea ecx, [esi - 4]
cmp ecx, 3
jg 0x10021317
movzx edx, byte [esp + esi + 0x16b]
mov al, byte [edx + 0x10060d00]
test al, al
jne 0x10021528
lea eax, [esp + 0x170]
push eax
lea ecx, [esp + 0x74]
push 0xffffffffffffffff
push ecx
mov dword [esp + 0x48], 0
call fcn.100396c0
mov al, byte [esp + esi + 0x178]
add esp, 0xc
cmp al, 0x69
jne 0x1002134c
mov byte [ebx + 2], 6
mov byte [esp + esi + 0x6a], 0
jmp 0x10021355
mov byte [ebx + 2], 4
mov byte [esp + esi + 0x6c], 0
push 0x1004f4b0
lea edx, [esp + 0x74]
push 0xffffffffffffffff
push edx
call fcn.10039670
push 0xffffffffffffffff
lea eax, [esp + 0x80]
push eax
push ebx
call fcn.1002be50
mov esi, eax
add esp, 0x18
cmp esi, 0xf42400
mov dword [esp + 0xc], esi
jne 0x10021422
lea ecx, [esp + 0x70]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10021392
sub ecx, edx
mov dword [esp + 0x3c], ecx
movzx ecx, cx
cmp byte [esp + ecx + 0x6e], 0x72
jne 0x100213d6
mov byte [esp + ecx + 0x6f], 0x72
mov byte [esp + ecx + 0x70], 0x65
mov byte [esp + ecx + 0x71], 0
push 0xffffffffffffffff
lea ecx, [esp + 0x74]
push ecx
push ebx
mov dword [esp + 0x48], 2
call fcn.1002be50
mov esi, eax
add esp, 0xc
mov dword [esp + 0xc], esi
cmp esi, 0xf42400
jne 0x10021422
cmp di, 6
jbe 0x10021416
lea edx, [esp + 0x170]
push edx
lea eax, [esp + 0x74]
push 0xffffffffffffffff
push eax
mov dword [esp + 0x64], 1
call fcn.100396c0
movzx ecx, byte [ebx + 2]
movzx eax, di
add esp, 0xc
sub eax, ecx
mov byte [esp + eax + 0x70], 0
jmp 0x100218fb
cmp esi, 0xf42400
je 0x10021528
mov al, byte [ebx + 0xc]
mov cl, al
xor esi, esi
and cl, 0xe0
cmp cl, 0x80
mov dword [esp + 0x38], esi
jne 0x10021445
cmp word [ebx + 0xa], 5
jbe 0x10021445
mov esi, 5
mov dword [esp + 0x38], esi
cmp cl, 0xc0
jne 0x10021462
cmp word [ebx + 0xa], 5
jbe 0x10021462
and al, 1
dec al
neg al
sbb eax, eax
inc eax
lea esi, [esi + eax*2 + 5]
mov dword [esp + 0x38], esi
movzx edx, si
mov al, byte [edx + ebx + 0xc]
and al, 0xe0
cmp al, 0x20
jne 0x10021475
cmp word [ebx + 0xa], si
ja 0x10021487
mov edi, dword [esp + 0x14]
mov esi, 0xf42400
mov dword [esp + 0xc], esi
jmp 0x100213de
movzx ecx, word [esp + 0x14]
mov al, byte [esp + ecx + 0x16e]
xor edx, edx
cmp al, 0x6c
setne dl
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x474]
push 0xffffffffffffffff
push ecx
add edx, 3
mov edi, edx
call fcn.100396c0
push 0xffffffffffffffff
lea edx, [esp + 0x480]
push edx
push edi
movzx eax, si
push 0xffffffffffffffff
lea ecx, [eax + ebx + 0xc]
push ecx
push 0
push ebx
call fcn.1001cce0
add esp, 0x28
cmp ax, 1
jne 0x10021528
test si, si
mov byte [ebx], 2
je 0x100214fe
sub word [ebx + 0xa], si
movzx eax, word [ebx + 0xa]
movzx ecx, si
push eax
lea edx, [ecx + ebx + 0xc]
push edx
lea eax, [ebx + 0xc]
push eax
call fcn.1002be50
add esp, 0xc
cmp word [esp + 0x3c], 2
jne 0x1002150d
mov byte [ebx], 3
mov byte [ebx + 1], 0x10
lea ecx, [esp + 0x70]
push ecx
lea edx, [ebx + 0x10c]
push 0xffffffffffffffff
push edx
call fcn.100396c0
add esp, 0xc
jmp 0x10024239
cmp word [esp + 0x14], 5
mov dword [esp + 0x3c], 0
jb 0x10022fe8
movzx eax, word [esp + 0x14]
mov dl, byte [esp + eax + 0x16d]
cmp dl, 0x69
lea esi, [esp + eax + 0x16d]
mov dword [esp + 0x4c], esi
mov byte [esp + 0x2f], dl
je 0x10021561
cmp dl, 0x65
jne 0x10021582
cmp byte [esp + eax + 0x16e], 0x6c
je 0x10021582
mov al, byte [esp + eax + 0x16f]
cmp al, 0x6f
je 0x10022fe8
cmp al, 0x61
je 0x10022fe8
movzx eax, word [esp + 0x14]
mov cl, byte [esp + eax + 0x16c]
cmp cl, 0x74
mov byte [esp + 0x13], cl
jne 0x100215cc
cmp dl, 0x61
jne 0x100215a6
cmp byte [esp + eax + 0x16f], 0x6f
je 0x100215c4
cmp cl, 0x74
jne 0x100215cc
cmp dl, 0x69
jne 0x100215cc
cmp byte [esp + eax + 0x16e], 0x6c
jne 0x100215cc
cmp byte [esp + eax + 0x16f], 0x65
je 0x100215cc
mov dword [esp + 0x64], 1
movzx ecx, word [esp + 0x14]
movzx dx, byte [esp + ecx + 0x16e]
movzx ax, byte [esp + ecx + 0x16f]
mov esi, dword [esp + 0x4c]
mov edi, 0x1004f14c
mov ecx, 4
shl edx, 8
add eax, edx
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x10021687
mov cl, byte [esp + 0x13]
cmp cl, 0x72
jne 0x1002161b
movzx eax, word [esp + 0x14]
cmp byte [esp + eax + 0x16b], cl
je 0x10022fe8
cmp cl, 0x65
jne 0x10021633
movzx eax, word [esp + 0x14]
cmp byte [esp + eax + 0x16b], 0x72
je 0x10022fe8
lea eax, [esp + 0x170]
push eax
lea ecx, [esp + 0x74]
push 0xffffffffffffffff
push ecx
call fcn.100396c0
mov esi, dword [esp + 0x20]
movzx eax, si
mov cl, byte [esp + eax + 0x178]
add esp, 0xc
cmp cl, 0x72
mov byte [esp + eax + 0x6d], 0
jne 0x10021676
push 0x1004f4b0
lea edx, [esp + 0x74]
push 0xffffffffffffffff
push edx
call fcn.10039670
add esp, 0xc
mov dword [esp + 0x3c], 1
mov byte [ebx + 2], 3
jmp 0x10021737
cmp ax, 0x6d69
je 0x100216c7
cmp ax, 0x7469
je 0x100216c7
cmp ax, 0x7369
je 0x100216c7
cmp ax, 0x6369
je 0x100216c7
cmp ax, 0x6e65
je 0x100216c7
cmp ax, 0x7669
je 0x100216c7
cmp ax, 0x6c6f
je 0x100216c7
cmp ax, 0x6c65
je 0x100216c7
cmp ax, 0x6c69
je 0x100216c7
cmp ax, 0x6c61
jne 0x10022fe8
mov al, byte [esp + 0x2f]
cmp al, 0x72
jne 0x100216d9
cmp byte [esp + 0x13], al
je 0x10022fe8
cmp al, 0x65
jne 0x100216e8
cmp byte [esp + 0x13], 0x72
je 0x10022fe8
lea eax, [esp + 0x170]
push eax
lea ecx, [esp + 0x74]
push 0xffffffffffffffff
push ecx
call fcn.100396c0
movzx eax, word [esp + 0x20]
mov edx, dword [esp + 0x58]
mov byte [esp + eax + 0x7a], 0
mov al, byte [edx]
add esp, 0xc
cmp al, 0x72
jne 0x1002172f
push 0x1004f4b0
lea eax, [esp + 0x74]
push 0xffffffffffffffff
push eax
call fcn.10039670
add esp, 0xc
mov dword [esp + 0x3c], 1
mov esi, dword [esp + 0x14]
mov byte [ebx + 2], 2
mov dword [esp + 0x58], 1
nop
mov eax, dword [ebx + 0x31c]
test eax, eax
je 0x10021765
cmp si, 7
jb 0x10021765
movsx ecx, word [ebx + 0x316]
movzx eax, si
sub eax, ecx
cmp eax, 3
jg 0x10021883
push 0xffffffffffffffff
lea edx, [esp + 0x74]
push edx
push ebx
call fcn.1002be50
add esp, 0xc
cmp eax, 0xf42400
mov dword [esp + 0xc], eax
je 0x10021883
mov cl, byte [ebx + 0xc]
mov al, cl
xor esi, esi
and al, 0xe0
cmp al, 0x20
mov dword [esp + 0x38], esi
je 0x10021825
mov edi, 5
mov edi, edi
movzx edx, si
mov al, byte [edx + ebx + 0xc]
and al, 0xe0
cmp al, 0xc0
jne 0x100217c9
cmp word [ebx + 0xa], di
jbe 0x100217c9
test si, si
jne 0x100217c9
mov al, cl
and al, 1
dec al
neg al
sbb eax, eax
inc eax
lea esi, [eax + eax + 5]
jmp 0x1002180e
cmp al, 0x80
jne 0x10021883
cmp word [ebx + 0xa], di
jbe 0x10021883
test si, si
jne 0x10021883
mov al, byte [ebx + 0x11]
mov dl, al
and dl, 0xe0
cmp dl, 0xc0
mov esi, edi
mov dword [esp + 0x38], esi
jne 0x10021812
movzx edx, word [ebx + 0xa]
sub edx, edi
cmp edx, edi
jle 0x10021812
and al, 1
dec al
neg al
sbb eax, eax
inc eax
lea esi, [eax + eax + 0xa]
mov dword [esp + 0x38], esi
movzx eax, si
mov dl, byte [eax + ebx + 0xc]
and dl, 0xe0
cmp dl, 0x20
jne 0x100217a0
movzx eax, word [esp + 0x14]
mov dl, byte [esp + eax + 0x16e]
xor ecx, ecx
cmp dl, 0x6c
setne cl
lea edx, [esp + 0x70]
push edx
lea eax, [esp + 0x474]
push 0xffffffffffffffff
push eax
add ecx, 3
mov edi, ecx
call fcn.100396c0
push 0xffffffffffffffff
lea ecx, [esp + 0x480]
push ecx
push edi
movzx edx, si
push 0xffffffffffffffff
lea eax, [edx + ebx + 0xc]
push eax
push 0
push ebx
mov byte [ebx + 0x20c], 0
call fcn.1001cce0
add esp, 0x28
cmp ax, 1
je 0x1002400a
mov eax, dword [esp + 0x3c]
cmp ax, 1
jne 0x100218de
lea eax, [esp + 0x70]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10021894
sub eax, edx
movzx esi, ax
cmp byte [esp + esi + 0x6e], 0x72
jne 0x100218fb
lea ecx, [esp + 0x70]
push ecx
lea edx, [esp + 0x674]
push 0xffffffffffffffff
push edx
call fcn.100396c0
mov byte [esp + esi + 0x7b], 0x72
mov byte [esp + esi + 0x7c], 0x65
mov byte [esp + esi + 0x7d], 0
mov esi, dword [esp + 0x20]
add esp, 0xc
mov dword [esp + 0x3c], 2
jmp 0x10021740
cmp ax, 2
jne 0x100218fb
lea eax, [esp + 0x670]
push eax
lea ecx, [esp + 0x74]
push 0xffffffffffffffff
push ecx
call fcn.100396c0
add esp, 0xc
lea eax, [esp + 0x70]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10021902
sub eax, edx
cmp ax, 4
movzx edi, ax
mov dl, byte [esp + edi + 0x6e]
lea esi, [esp + edi + 0x70]
mov dword [esp + 0x24], eax
mov byte [esp + 0x67a], cl
ja 0x1002198e
mov al, byte [esp + edi + 0x170]
cmp byte [esi - 1], al
jne 0x1002198e
cmp al, 0x6d
je 0x10021951
cmp al, 0x74
je 0x10021951
cmp al, 0x63
je 0x10021951
cmp al, 0x6c
je 0x10021951
cmp al, 0x6e
jne 0x1002198e
cmp byte [esp + edi + 0x171], 0x65
jne 0x1002198e
movzx edx, dl
mov al, byte [edx + 0x10060d00]
test al, al
je 0x1002198e
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x674]
push 0xffffffffffffffff
push ecx
call fcn.100396c0
mov al, byte [esi - 2]
add esp, 0xc
cmp al, 0x69
sete dl
dec dl
mov cl, 1
mov byte [esp + 0x67a], cl
and edx, 0x69
mov byte [esi - 1], dl
mov eax, dword [ebx + 0x31c]
test eax, eax
mov dword [esp + 0xc], 0xf42400
je 0x100219c4
mov eax, dword [esp + 0x14]
cmp ax, 7
jb 0x100219c4
movsx edx, word [ebx + 0x316]
movzx eax, ax
sub eax, edx
cmp eax, 3
jle 0x100219c4
cmp cl, 1
jne 0x10021b7f
push 0xffffffffffffffff
lea eax, [esp + 0x74]
push eax
push ebx
call fcn.1002be50
add esp, 0xc
cmp eax, 0xf42400
mov dword [esp + 0xc], eax
je 0x10021b5e
mov cl, byte [ebx + 0xc]
xor esi, esi
and cl, 0xe0
cmp cl, 0x80
mov dword [esp + 0x24], esi
jne 0x100219fd
mov esi, 5
mov dword [esp + 0x24], esi
movzx edx, si
mov al, byte [edx + ebx + 0xc]
mov cl, al
and cl, 0xe0
cmp cl, 0xc0
jne 0x10021a25
cmp word [ebx + 0xa], si
jbe 0x10021a25
and al, 1
dec al
neg al
sbb eax, eax
inc eax
lea esi, [esi + eax*2 + 5]
mov dword [esp + 0x24], esi
movzx edx, si
mov cl, byte [edx + ebx + 0xc]
lea eax, [edx + ebx + 0xc]
and cl, 0xe0
cmp cl, 0x40
jne 0x10021b5e
mov dx, word [esp + 0x24]
cmp word [ebx + 0xa], dx
jbe 0x10021b5e
push 0xffffffffffffffff
lea ecx, [esp + 0x574]
push ecx
push eax
call fcn.10017630
xor eax, eax
mov ax, word [ebx + 0xa]
movzx ecx, ax
mov edx, ecx
shr ecx, 2
lea esi, [ebx + 0xc]
lea edi, [esp + 0x37c]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x48], eax
movzx eax, word [esp + 0x20]
mov ecx, edx
mov dl, byte [esp + eax + 0x17a]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor ecx, ecx
cmp dl, 0x6c
setne cl
push 0xffffffffffffffff
lea edx, [esp + 0x480]
push edx
add ecx, 3
mov eax, ecx
push eax
push 0xffffffffffffffff
lea eax, [esp + 0x58c]
push eax
push 1
push ebx
call fcn.1001cce0
add esp, 0x28
cmp ax, 1
jne 0x10021b5e
mov eax, dword [esp + 0x3c]
movzx ecx, ax
mov edx, ecx
shr ecx, 2
mov word [ebx + 0xa], ax
lea esi, [esp + 0x370]
lea edi, [ebx + 0xc]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
lea eax, [esp + 0x70]
rep movsb byte es:[edi], byte [esi]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10021af0
sub eax, edx
mov al, byte [esp + eax + 0x170]
lea ecx, [esp + 0x70]
push ecx
mov byte [esp + 0x38], al
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x28]
push edx
push eax
push ebx
call fcn.10018d30
add esp, 0x10
cmp ax, 1
jne 0x10021b5e
lea eax, [esp + 0x70]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10021b30
sub eax, edx
cmp eax, 3
jne 0x10024059
cmp byte [esp + 0x171], 0x61
jne 0x10024059
cmp byte [esp + 0x172], 0x69
jne 0x10024059
cmp byte [esp + 0x67a], 1
jne 0x10021b7f
lea ecx, [esp + 0x670]
push ecx
lea edx, [esp + 0x74]
push 0xffffffffffffffff
push edx
call fcn.100396c0
add esp, 0xc
mov eax, dword [esp + 0x24]
test ax, ax
jbe 0x10021ba6
movzx eax, ax
cmp byte [esp + eax + 0x6f], 0x6e
jne 0x10021ba6
push 0x1004f444
lea ecx, [esp + 0x74]
push 0xffffffffffffffff
push ecx
call fcn.10039670
add esp, 0xc
lea edx, [esp + 0x70]
push edx
lea eax, [esp + 0x174]
push eax
push ebx
call fcn.100188b0
add esp, 0xc
test ax, ax
je 0x10021be3
xor ecx, ecx
cmp ax, 2
sete cl
mov esi, 0x23
mov dword [esp + 0x50], 0x59
mov edi, 0x224
inc ecx
mov dword [esp + 0x68], ecx
jmp 0x10021bf5
mov esi, 0x24
mov dword [esp + 0x50], 0x2c
mov edi, 0x232
lea edx, [esp + 0x170]
push edx
lea eax, [esp + 0x574]
push 0xffffffffffffffff
push eax
call fcn.100396c0
lea ecx, [esp + 0x7c]
push ecx
lea edx, [esp + 0x180]
push 0xffffffffffffffff
push edx
call fcn.100396c0
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x188]
add esp, 0x18
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10021c35
sub eax, edx
mov dword [esp + 0x14], eax
push 0x1004f384
lea ecx, [esp + 0x174]
push 0xffffffffffffffff
push ecx
mov byte [esp + 0x3b], 0
mov byte [esp + 0x63], 0
mov byte [esp + 0x2f], 0
mov byte [esp + 0x1f], 0
mov byte [esp + 0x27], 0
call fcn.10039670
mov ecx, dword [0x10060e0c]
movzx eax, di
add esp, 0xc
add eax, ecx
mov byte [esp + 0x1a], 0xff
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], esi
lea ebx, [ebx]
movzx edx, word [esp + 0x28]
movsx eax, word [esp + 0x50]
cmp edx, eax
jge 0x10022ed8
mov eax, dword [esp + 0x28]
cmp ax, 2
jae 0x10021cb7
mov esi, 8
mov dword [esp + 0x24], esi
jmp 0x10021d21
cmp ax, 0x13
jae 0x10021cc8
mov esi, 6
mov dword [esp + 0x24], esi
jmp 0x10021d21
cmp ax, 0x23
jae 0x10021cd9
mov esi, 5
mov dword [esp + 0x24], esi
jmp 0x10021d21
cmp ax, 0x3f
jae 0x10021cea
mov esi, 4
mov dword [esp + 0x24], esi
jmp 0x10021d21
cmp ax, 0x52
jae 0x10021cfb
mov esi, 3
mov dword [esp + 0x24], esi
jmp 0x10021d21
cmp ax, 0x55
jae 0x10021d0c
mov esi, 2
mov dword [esp + 0x24], esi
jmp 0x10021d21
cmp ax, 0x5c
jae 0x10021d1d
mov esi, 1
mov dword [esp + 0x24], esi
jmp 0x10021d21
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
sub edi, esi
cmp di, 1
mov dword [esp + 0x4c], edi
jge 0x10021e02
cmp si, 1
jbe 0x10021ee0
cmp si, 8
jne 0x10021d4e
mov esi, 7
mov dword [esp + 0x24], esi
mov edx, dword [0x10060ea0]
movzx eax, si
movsx ecx, word [edx + eax*8 - 0x10]
add ecx, dword [0x10060e0c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [0x10060cf4]
mov dx, word [ecx + eax*2 - 4]
cmp byte [ebx + 0x318], 1
mov word [esp + 0x28], dx
mov byte [esp + 0x1a], 0xff
jne 0x10021c90
movsx ecx, word [ebx + 0x316]
movzx edx, word [esp + 0x14]
sub edx, ecx
dec eax
cmp edx, eax
jle 0x10021c90
mov al, byte [ebx + 0x316]
inc al
mov byte [ebx + 0x312], al
mov eax, dword [esp + 0x14]
movzx ecx, ax
mov byte [esp + ecx + 0x170], 0
movzx ecx, byte [ebx + 0x31c]
push ecx
lea edx, [esp + 0x10]
push edx
mov edx, dword [esp + 0x60]
lea ecx, [esp + 0x278]
push ecx
push edx
push eax
lea eax, [esp + 0x184]
push eax
push ebx
call fcn.1001e630
add esp, 0x1c
test ax, ax
je 0x10020e2f
cmp word [esp + 0x64], 0
jne 0x10020e2f
jmp 0x10024239
cmp si, 1
jbe 0x10021ee0
movsx eax, di
mov cl, byte [esp + eax + 0x170]
movzx eax, cl
mov dl, byte [eax + 0x10060d00]
test dl, dl
je case.0x10021e5d.98
cmp cl, 0x69
jbe 0x10021e3f
cmp si, 3
jne case.0x10021e5d.98
cmp cl, 0x6f
jne 0x10021d4e
cmp byte [esp + 0x1a], 0xff
jne 0x10021edc
add eax, 0xffffff9f
cmp eax, 0xe
ja case.0x10021e5d.98
movzx edx, byte [eax + 0x10024328]
jmp dword [edx*4 + 0x10024314]
xor eax, eax
jmp 0x10021e7b
mov eax, 1
jmp 0x10021e7b
mov eax, 2
jmp 0x10021e7b
mov eax, 3
mov dword [esp + 0x30], eax
movzx edx, si
movzx eax, ax
lea edi, [eax + edx*4]
mov edx, dword [0x10060ea0]
mov ax, word [edx + edi*2 - 8]
cmp ax, 0x2710
je case.0x10021e5d.98
mov edx, dword [0x10060e0c]
movsx eax, ax
add eax, edx
movsx edx, word [esp + 0x4c]
mov dl, byte [esp + edx + 0x171]
cmp dl, byte [eax + 1]
mov dword [esp + 0x1c], eax
jb case.0x10021e5d.98
mov edx, dword [0x10060920]
movzx dx, byte [edx + edi - 4]
mov edi, dword [esp + 0x4c]
mov word [esp + 0x28], dx
mov byte [esp + 0x1a], cl
jmp 0x10021ee4
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x1c]
mov al, byte [eax]
cmp al, byte [esp + 0x1a]
jbe 0x10021efb
cmp si, 1
mov byte [esp + 0x1a], 0xff
ja case.0x10021e5d.98
movsx ecx, di
mov dl, byte [esp + ecx + 0x170]
cmp dl, al
lea esi, [esp + ecx + 0x170]
jne 0x10022f2c
cmp word [esp + 0x24], 1
je 0x10021f30
mov al, byte [esp + ecx + 0x171]
mov ecx, dword [esp + 0x1c]
cmp al, byte [ecx + 1]
jne 0x10022f2c
movzx edx, word [esp + 0x24]
mov edi, dword [esp + 0x1c]
mov ecx, edx
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x10022f2c
cmp word [esp + 0x28], 0x5a
jne 0x10021f5a
cmp byte [ebx + 0x320], 0xe8
je 0x10022ed8
movzx ecx, word [esp + 0x14]
mov eax, ecx
sub eax, edx
cmp eax, 0x16
jg 0x10022ed8
mov esi, dword [ebx + 0x31c]
mov edi, 1
cmp esi, edi
jne 0x10021fd3
mov esi, dword [esp + 0x14]
cmp si, 6
ja 0x10021f8e
jne 0x10021fd3
cmp word [esp + 0x24], di
jne 0x10021fd3
movsx esi, word [ebx + 0x316]
sub ecx, esi
cmp ecx, edx
jle 0x10021fd3
cmp word [esp + 0x58], 0
jne 0x10021fd3
cmp byte [esp + eax + 0x16e], 0x73
lea eax, [esp + eax + 0x170]
jne 0x10021fc0
cmp byte [eax - 1], 0x63
jne 0x10021fc0
cmp byte [eax - 3], 0x69
je 0x10021fd3
cmp byte [eax - 1], 0x68
jne 0x10021dad
inc edx
cmp ecx, edx
jne 0x10021dad
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
inc esi
movzx ecx, si
lea eax, [ecx + edx]
lea ecx, [esp + 0x170]
push ecx
mov dword [esp + 0x64], eax
mov al, byte [eax + 6]
lea edx, [esp + 0x74]
push 0xffffffffffffffff
push edx
mov dword [esp + 0x30], esi
mov byte [esp + 0x40], al
call fcn.100396c0
lea eax, [esp + 0x17c]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10022012
sub eax, edx
sub eax, esi
movzx edi, ax
mov cl, byte [esp + edi + 0x70]
cmp cl, 0x61
mov dword [esp + 0x48], eax
lea eax, [esp + edi + 0x70]
jne 0x10022037
cmp si, 2
je 0x1002204f
mov dl, byte [esp + 0x34]
cmp dl, 0x31
jne 0x10022055
mov ecx, dword [esp + 0x60]
cmp byte [ecx + 0xb], 0x35
jne 0x10022055
mov byte [esp + 0x57], 1
mov dl, 0x36
mov byte [esp + 0x34], dl
cmp byte [eax - 1], 0x68
mov byte [eax], 0
jne 0x100220b9
cmp word [esp + 0x48], 1
jbe 0x100220b9
mov cl, byte [eax - 2]
cmp cl, 0x63
je 0x10022073
cmp cl, 0x67
jne 0x100220b9
mov cl, byte [esp + edi + 0x170]
cmp cl, 0x69
je 0x10022084
cmp cl, 0x65
jne 0x100220b9
cmp dl, 0x31
je 0x100220b0
cmp dl, 0x34
je 0x100220b0
cmp dl, 0x36
je 0x100220b0
cmp dl, 0x33
je 0x100220b9
mov esi, dword [esp + 0x1c]
mov edi, str.endo
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x10022ed8
mov byte [eax - 1], 0
mov byte [esp + 0x1b], 1
cmp word [esp + 0x48], 2
jbe 0x100220f6
add eax, 0xfffffffd
mov edi, 0x1004f49c
mov esi, eax
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x100220f6
cmp word [esp + 0x24], 2
je 0x100220ee
mov ecx, dword [esp + 0x28]
cmp cx, 0x51
je 0x100220ee
cmp cx, 0x3f
jne 0x100220f6
mov byte [eax], 0
mov byte [esp + 0x13], 1
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x374]
push 0xffffffffffffffff
push ecx
call fcn.100396c0
mov eax, dword [esp + 0x28]
add esp, 0xc
mov dword [esp + 0xc], 0xf42400
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10022120
sub eax, edx
cmp eax, 2
jbe 0x10022132
or byte [ebx + 6], 0x10
mov dword [esp + 0x30], 1
lea ebx, [ebx]
cmp word [esp + 0x30], 4
jbe 0x10022a79
cmp dword [esp + 0xc], 0xf42400
je 0x10022e66
mov edi, dword [esp + 0x28]
xor eax, eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x3c], eax
cmp byte [esp + 0x1b], 1
jne 0x100221af
cmp di, 0x57
jne 0x100221af
cmp word [esp + 0x30], 2
jne 0x100221af
lea eax, [esp + 0x70]
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10022184
sub eax, esi
cmp byte [esp + eax + 0x6b], 0x68
je 0x100221af
movzx edx, word [esp + 0x14]
movzx eax, byte [esp + edx + 0x16c]
mov cl, byte [eax + 0x10060d00]
test cl, cl
je 0x10022ed8
mov edx, dword [esp + 0x68]
cmp dx, 1
jne 0x10022243
cmp di, 0x35
je 0x100221f1
cmp di, 0x24
je 0x100221f1
cmp di, 0x2b
je 0x100221f1
cmp di, 0x40
je 0x100221f1
cmp di, 0x46
je 0x100221f1
cmp di, 0x4d
je 0x100221f1
cmp di, 0x55
je 0x100221f1
cmp di, 0x57
jne 0x10022ed8
mov esi, dword [esp + 0x30]
cmp si, 3
jae 0x10022247
cmp di, 0x55
je 0x10022247
cmp di, 0x35
je 0x10022247
cmp di, 0x40
jne 0x10022ed8
mov cl, byte [ebx + 2]
test cl, cl
je 0x10022ed8
cmp cl, 2
jne 0x1002223b
movzx eax, word [esp + 0x14]
mov al, byte [esp + eax + 0x26e]
cmp al, 0x6d
je 0x10022247
cmp al, 0x63
je 0x10022247
cmp al, 0x74
je 0x10022247
cmp cl, cl
jbe 0x10022ed8
jmp 0x10022247
mov esi, dword [esp + 0x30]
cmp word [esp + 0x50], 0x2c
jne 0x1002225f
cmp di, 0x24
je 0x1002225f
cmp di, 0x2b
jne 0x10022ed8
cmp dx, 1
jne 0x10022287
cmp si, 2
jbe 0x100222af
cmp di, 0x57
je 0x100222af
cmp di, 0x35
je 0x100222af
cmp di, 0x46
jne 0x10022ed8
cmp si, 3
jmp 0x100222a9
cmp dx, 2
jne 0x100222af
cmp di, 0x56
je 0x100222af
cmp di, 0x55
je 0x100222af
cmp di, 0x51
je 0x100222af
cmp di, 0x3f
je 0x100222af
cmp di, 0x47
jne 0x10022ed8
mov cl, byte [ebx + 0xc]
and cl, 0xe0
cmp cl, 0x80
jne 0x100222c5
mov esi, 5
mov dword [esp + 0x3c], esi
jmp 0x100222c9
mov esi, dword [esp + 0x3c]
movzx edx, si
mov al, byte [edx + ebx + 0xc]
mov cl, al
and cl, 0xe0
cmp cl, 0xc0
jne 0x100222eb
and al, 1
dec al
neg al
sbb eax, eax
inc eax
lea edx, [esi + eax*2 + 5]
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x3c]
movzx ecx, ax
add ecx, ebx
mov dl, byte [ecx + 0xc]
lea esi, [ecx + 0xc]
and dl, 0xe0
cmp dl, 0x20
mov dword [esp + 0x6c], esi
jne 0x10022a5e
cmp ax, word [ebx + 0xa]
jae 0x10022a5e
mov cl, byte [ecx + 0xd]
test cl, 0x40
jne 0x10022329
mov dword [esp + 0x60], 1
jmp 0x10022580
mov al, byte [esp + 0x13]
cmp al, 1
jne 0x10022352
mov edx, dword [esp + 0x30]
cmp dx, 3
ja 0x10022352
cmp dx, 4
jae 0x10022ed8
mov dword [esp + 0xc], 0xf42400
jmp 0x10022a75
mov dl, cl
and dl, 0x38
cmp dl, 0x20
jne 0x100223ab
mov ecx, dword [esp + 0x1c]
mov cl, byte [ecx]
cmp cl, 0x61
je 0x10022376
cmp cl, 0x65
je 0x10022376
cmp cl, 0x69
je 0x10022376
cmp cl, 0x6f
jne 0x100223ab
cmp word [esp + 0x30], 4
jne 0x100223ab
test al, al
jne 0x10022580
cmp word [esp + 0x24], 2
je 0x10022ed8
cmp di, 0x51
je 0x10022ed8
cmp di, 0x3f
je 0x10022ed8
jmp 0x10022580
cmp al, 1
jne 0x100223df
cmp word [esp + 0x30], 4
jne 0x100223df
test dl, dl
je 0x10022ed8
cmp di, 0x58
ja 0x10022ed8
cmp di, 0x55
jae 0x100223df
cmp di, 0x51
je 0x100223df
cmp di, 0x3f
jne 0x10022ed8
mov cl, byte [esp + 0x23]
cmp cl, 1
jne 0x10022406
test dl, dl
jne 0x10022406
mov esi, dword [esp + 0x24]
cmp si, 2
je 0x10022ed8
cmp byte [esp + 0x2f], cl
je 0x10022ed8
jmp 0x1002240a
mov esi, dword [esp + 0x24]
test dl, dl
je 0x1002254c
mov eax, dword [esp + 0x1c]
mov al, byte [eax]
cmp al, 0x65
je 0x10022420
cmp al, 0x69
jne 0x10022457
test cl, cl
jne 0x10022457
movzx eax, word [esp + 0x14]
movzx ecx, si
sub eax, ecx
lea ecx, [esp + eax + 0x170]
cmp byte [ecx], 0x69
jne 0x10022457
cmp word [esp + 0x30], 3
jae 0x10022457
mov cl, byte [ecx - 1]
cmp cl, 0x63
je 0x10022ed8
cmp cl, 0x67
je 0x10022ed8
test dl, dl
je 0x1002254c
mov ecx, dword [esp + 0x1c]
mov al, byte [ecx]
cmp al, 0x65
je 0x1002246d
cmp al, 0x69
jne 0x100224a1
mov al, byte [esp + 0x23]
test al, al
jne 0x100224a1
cmp word [esp + 0x30], 3
jae 0x100224a1
movzx ecx, word [esp + 0x14]
movzx eax, si
sub ecx, eax
mov cl, byte [esp + ecx + 0x170]
cmp cl, 0x63
je 0x10022498
cmp cl, 0x67
jne 0x100224a1
inc dword [esp + 0x30]
jmp 0x10022a7d
test dl, dl
je 0x1002254c
cmp byte [esp + 0x23], 1
jne 0x100224e4
mov eax, dword [esp + 0x1c]
cmp byte [eax], 0x65
jne 0x100224e4
movzx eax, word [esp + 0x14]
movzx ecx, si
sub eax, ecx
lea ecx, [esp + eax + 0x170]
cmp byte [ecx], 0x69
jne 0x100224e4
mov cl, byte [ecx - 1]
cmp cl, 0x63
je 0x10022ed8
cmp cl, 0x67
je 0x10022ed8
test dl, dl
je 0x1002254c
cmp byte [esp + 0x23], 1
jne 0x10022520
mov ecx, dword [esp + 0x1c]
mov al, byte [ecx]
cmp al, 0x6f
je 0x100224fd
cmp al, 0x61
jne 0x10022520
movzx ecx, word [esp + 0x14]
movzx eax, si
sub ecx, eax
mov cl, byte [esp + ecx + 0x170]
cmp cl, 0x63
je 0x10022ed8
cmp cl, 0x67
je 0x10022ed8
test dl, dl
je 0x1002254c
mov edx, dword [esp + 0x1c]
mov cl, byte [edx]
cmp cl, 0x7e
je 0x10022539
cmp cl, 0x6f
je 0x10022539
cmp cl, 0x61
jne 0x1002254c
cmp word [esp + 0x30], 3
jae 0x1002254c
cmp byte [esp + 0x1b], 1
je 0x10022ed8
cmp byte [esp + 0x23], 1
jne 0x10022580
cmp si, 2
jne 0x10022580
movzx ecx, word [esp + 0x14]
mov al, byte [esp + ecx + 0x16e]
lea ecx, [esp + ecx + 0x170]
mov cl, byte [ecx - 1]
cmp cl, al
je 0x10022580
cmp cl, 0x69
je 0x10022580
cmp al, 0x69
jne 0x10022ed8
mov ecx, dword [esp + 0x3c]
test cx, cx
je 0x100225aa
xor eax, eax
mov ax, word [ebx + 0xa]
sub eax, ecx
mov ecx, dword [esp + 0x6c]
mov word [ebx + 0xa], ax
movzx eax, ax
push eax
push ecx
lea eax, [ebx + 0xc]
push eax
call fcn.1002be50
add esp, 0xc
mov dl, byte [ebx + 0xd]
and dl, 0x38
cmp dl, 0x20
jne 0x10022610
mov al, byte [esp + 0x23]
test al, al
jne 0x10022610
mov eax, dword [esp + 0x1c]
cmp byte [eax], 0x69
jne 0x10022610
movzx ecx, word [esp + 0x48]
cmp byte [esp + ecx + 0x16f], 0x68
je 0x10022610
cmp di, 0x35
je 0x10022610
lea eax, [esp + 0x70]
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100225e2
sub eax, esi
mov ecx, 3
lea edi, [esp + eax + 0x6d]
mov esi, 0x1004f290
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x10022610
cmp word [esp + 0x30], 4
jae 0x10022ed8
jmp 0x10022a75
test byte [ebx + 0xf], 5
jne 0x10022642
cmp word [esp + 0x30], 3
jne 0x10022642
mov edx, dword [esp + 0x28]
cmp dx, 0x34
je 0x10022ed8
cmp dx, 0x33
je 0x10022ed8
cmp dx, 0xb
je 0x10022ed8
jmp 0x10022646
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
mov eax, edi
lea esi, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10022650
sub eax, esi
cmp byte [eax + edi + 1], 0x31
je 0x10022664
or byte [ebx + 1], 1
mov cl, byte [eax + edi + 3]
cmp cl, 0x69
jne 0x1002272d
cmp byte [eax + edi + 4], 0x70
jne 0x100226cb
cmp byte [esp + 0x57], 1
jne 0x10022783
lea ecx, [esp + 0x70]
lea esi, [ecx + 1]
lea ebx, [ebx]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x10022690
sub ecx, esi
cmp byte [esp + ecx + 0x6d], 0x65
je 0x100226bb
lea ecx, [esp + 0x70]
lea esi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x100226a7
sub ecx, esi
cmp byte [esp + ecx + 0x6d], 0x69
jne 0x10022783
mov cl, byte [ebx + 1]
or cl, 0x60
mov byte [esp + 0x34], 0x43
jmp 0x100227c5
cmp cl, 0x69
jne 0x1002272d
cmp byte [eax + edi + 4], 0x66
jne 0x100226ec
mov cl, byte [ebx + 1]
or cl, 0xe0
mov byte [esp + 0x34], 0x49
mov byte [esp + 0x1a], 6
jmp 0x100227ca
cmp cl, 0x69
jne 0x1002272d
cmp byte [eax + edi + 4], cl
jne 0x1002270c
mov cl, byte [ebx + 1]
or cl, 0xc0
mov byte [esp + 0x34], 0x49
mov byte [esp + 0x1a], 4
jmp 0x100227ca
cmp cl, 0x69
jne 0x1002272d
cmp byte [eax + edi + 4], 0x72
jne 0x1002272d
mov cl, byte [ebx + 1]
or cl, 0xa0
mov byte [esp + 0x34], 0x49
mov byte [esp + 0x1a], 2
jmp 0x100227ca
cmp cl, 0x63
jne 0x10022749
cmp byte [eax + edi + 4], 0x72
jne 0x10022749
mov cl, byte [ebx + 1]
or cl, 0xf0
mov byte [esp + 0x34], 0x4e
jmp 0x100227c5
cmp cl, 0x67
jne 0x10022762
cmp byte [eax + edi + 4], 0x65
jne 0x10022762
mov cl, byte [ebx + 1]
or cl, 0x40
mov byte [esp + 0x34], 0x47
jmp 0x100227c5
cmp cl, 0x63
jne 0x100227ae
cmp byte [eax + edi + 4], 0x70
jne 0x10022790
cmp byte [esp + 0x23], 1
jne 0x100226bb
cmp dx, 0x36
jne 0x100226bb
mov cl, byte [ebx + 1]
or cl, 0x80
mov byte [esp + 0x34], 0x49
jmp 0x100227c5
cmp cl, 0x63
jne 0x100227ae
cmp byte [eax + edi + 4], 0x69
jne 0x100227ae
mov cl, byte [ebx + 1]
or cl, 0x50
mov byte [esp + 0x34], 0x43
mov byte [esp + 0x1a], 4
jmp 0x100227ca
cmp cl, 0x69
jne 0x100227cd
cmp byte [eax + edi + 4], 0x6d
jne 0x100227cd
mov cl, byte [ebx + 1]
or cl, 0x70
mov byte [esp + 0x34], 0x4d
mov byte [esp + 0x1a], 0
mov byte [ebx + 1], cl
movzx eax, byte [eax + edi + 5]
add eax, 0xffffffcf
cmp eax, 7
ja case.default.0x100227da
jmp dword [eax*4 + 0x10024338]
or byte [ebx + 1], 0xe
mov byte [esp + 0x44], 1
jmp case.default.0x100227da
or byte [ebx + 1], 0xc
mov byte [esp + 0x44], 2
jmp case.default.0x100227da
or byte [ebx + 1], 0xa
mov byte [esp + 0x44], 3
jmp case.default.0x100227da
or byte [ebx + 1], 8
mov byte [esp + 0x44], 4
jmp case.default.0x100227da
or byte [ebx + 1], 6
mov byte [esp + 0x44], 5
jmp case.default.0x100227da
or byte [ebx + 1], 4
mov byte [esp + 0x44], 6
jmp case.default.0x100227da
or byte [ebx + 1], 2
mov byte [esp + 0x44], 7
jmp case.default.0x100227da
mov byte [esp + 0x44], 8
cmp word [esp + 0x24], 2
jne 0x100228a6
cmp byte [edi], 0x61
jne 0x100228a6
lea eax, [esp + 0x70]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10022847
sub eax, edx
lea edi, [esp + eax + 0x6d]
mov ecx, 3
mov esi, 0x1004f290
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x1002288d
lea eax, [esp + 0x70]
lea edx, [eax + 1]
jmp 0x10022870
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10022870
sub eax, edx
mov ecx, 3
lea edi, [esp + eax + 0x6d]
mov esi, 0x1004f28c
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x100228a6
mov al, byte [ebx + 1]
and al, 1
or al, 0x62
mov byte [esp + 0x34], 0x43
mov byte [esp + 0x1a], 0
mov byte [ebx + 1], al
mov byte [esp + 0x44], 7
lea ecx, [esp + 0x70]
push ecx
lea eax, [ebx + 0x10c]
push 0xffffffffffffffff
push eax
call fcn.100396c0
mov esi, 1
add esp, 0xc
cmp word [esp + 0x60], si
je 0x100228df
cmp byte [esp + 0x1b], 1
jne 0x100240cc
cmp word [esp + 0x30], 4
jne 0x100240cc
xor eax, eax
mov ax, word [ebx + 0xa]
movzx ecx, ax
mov edx, ecx
shr ecx, 2
lea esi, [ebx + 0xc]
lea edi, [esp + 0x870]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x3c], eax
lea eax, [ebx + 0x10c]
push eax
mov ecx, edx
lea eax, [esp + 0x974]
and ecx, 3
push 0xffffffffffffffff
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.100396c0
mov al, byte [esp + 0x26]
mov byte [esp + 0x4c], al
movzx eax, al
add esp, 0xc
cmp eax, 7
ja case.default.0x1002292d
jmp dword [eax*4 + 0x10024358]
mov byte [esp + 0x40], 0
jmp case.default.0x1002292d
mov byte [esp + 0x40], 5
jmp case.default.0x1002292d
mov byte [esp + 0x40], 2
jmp case.default.0x1002292d
mov byte [esp + 0x40], 7
jmp case.default.0x1002292d
mov byte [esp + 0x40], 1
jmp case.default.0x1002292d
mov byte [esp + 0x40], 6
jmp case.default.0x1002292d
mov byte [esp + 0x40], 3
jmp case.default.0x1002292d
mov byte [esp + 0x40], 8
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
push 0
push ecx
push edx
push eax
call fcn.1001a290
add esp, 4
lea ecx, [esp + 0x7c]
lea edx, [esp + 0x97c]
push eax
push 0xffffffffffffffff
push ecx
push edx
call fcn.10037ea0
mov al, byte [esp + 0x70]
test al, al
je 0x100229bc
push 0x1004f15c
push 0x1004f154
lea eax, [esp + 0x78]
push eax
push 0x100
mov ecx, eax
push ecx
call fcn.100164f0
lea eax, [esp + 0x70]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100229c3
movzx ecx, word [esp + 0x14]
sub eax, edx
movsx eax, ax
cmp ecx, eax
jne 0x100229ef
mov ecx, eax
lea edi, [esp + 0x170]
lea esi, [esp + 0x70]
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x100240a4
lea esi, [esp + eax + 0x71]
cmp byte [esi], 0
je 0x10022a0e
movzx ecx, word [esp + 0x14]
lea edi, [esp + 0x170]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x100240a4
mov eax, dword [esp + 0x28]
cmp ax, 0x45
je 0x10022a34
cmp ax, 0x55
je 0x10022a34
cmp ax, 0x2d
je 0x10022a34
cmp ax, 0x17
je 0x10022a34
cmp ax, 6
jne 0x10022e9c
mov cl, byte [esp + 0x23]
test cl, cl
jne 0x10022e9c
cmp word [esp + 0x30], 1
jne 0x10022e9c
mov dword [esp + 0x30], 2
mov dword [esp + 0xc], 0xf42400
jmp 0x10022a79
cmp word [esp + 0x30], 4
jae 0x10022ed8
cmp byte [esp + 0x34], 0x33
jbe 0x10022ed8
inc dword [esp + 0x30]
mov esi, dword [esp + 0x24]
lea ecx, [esp + 0x370]
push ecx
lea edx, [esp + 0x74]
push 0xffffffffffffffff
push edx
call fcn.100396c0
mov eax, dword [esp + 0x3c]
add esp, 0xc
cmp ax, 1
jne 0x10022b47
mov al, byte [esp + 0x34]
cmp al, 0x31
je 0x10022ab6
cmp al, 0x34
je 0x10022ab6
cmp al, 0x36
jne 0x10022e4f
mov eax, dword [0x10052038]
push eax
lea ecx, [esp + 0x74]
push 0xffffffffffffffff
push ecx
call fcn.10039670
add esp, 0xc
cmp si, 2
je 0x10022adb
cmp si, 4
jne 0x10022e3b
cmp byte [esp + 0x13], 1
jne 0x10022e3b
lea eax, [esp + 0x70]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10022af0
sub eax, edx
lea eax, [esp + eax + 0x70]
lea esi, [eax - 3]
push 4
push esi
push eax
call fcn.1002be50
mov dx, word [0x1004f49c]
mov al, byte [0x1004f49e]
push 0xffffffffffffffff
lea ecx, [esp + 0x80]
push ecx
mov word [esi], dx
push ebx
mov byte [esi + 2], al
call fcn.1002be50
add esp, 0x18
cmp eax, 0xf42400
mov dword [esp + 0xc], eax
je 0x10022e5d
mov byte [esp + 0x13], 0
jmp 0x10022e4f
cmp ax, 2
jne 0x10022d16
mov eax, dword [esp + 0x1c]
mov cl, byte [eax]
cmp cl, 0x69
je 0x10022b71
movzx edx, word [esp + 0x48]
mov al, byte [esp + edx + 0x6f]
cmp al, 0x67
je 0x10022b71
cmp al, 0x63
jne 0x10022e4f
mov al, byte [esp + 0x34]
cmp al, 0x31
je 0x10022b85
cmp al, 0x34
je 0x10022b85
cmp al, 0x36
jne 0x10022e4f
cmp cl, 0x69
je 0x10022b8f
mov byte [esp + 0x2f], 1
push str.iare
lea eax, [esp + 0x74]
push 0xffffffffffffffff
push eax
call fcn.10039670
add esp, 0xc
cmp si, 2
jne 0x10022c1b
cmp byte [esp + 0x13], 1
jne 0x10022c1b
lea eax, [esp + 0x70]
lea edx, [eax + 1]
jmp 0x10022bc0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10022bc0
sub eax, edx
mov edi, eax
push 4
lea esi, [esp + edi + 0x70]
lea ecx, [esp + edi + 0x73]
push esi
push ecx
call fcn.1002be50
mov dx, word [0x1004f49c]
mov al, byte [0x1004f49e]
push 0xffffffffffffffff
lea ecx, [esp + 0x80]
push ecx
mov word [esi], dx
push ebx
mov byte [esi + 2], al
mov byte [esp + edi + 0x8b], 0
call fcn.1002be50
add esp, 0x18
cmp eax, 0xf42400
mov dword [esp + 0xc], eax
je 0x10022c42
mov byte [esp + 0x13], 0
jmp 0x10022c34
push 0xffffffffffffffff
lea edx, [esp + 0x74]
push edx
push ebx
mov byte [esp + 0x2f], 1
call fcn.1002be50
add esp, 0xc
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 0xf42400
jne 0x1002215a
mov eax, dword [esp + 0x28]
cmp ax, 0x57
je 0x10022c5e
cmp ax, 0x35
je 0x10022c5e
cmp ax, 0x4a
je 0x10022c5e
cmp ax, 0x36
jne 0x10022c93
cmp byte [esp + 0x1b], 1
jne 0x10022c93
lea eax, [esp + 0x70]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10022c70
sub eax, edx
add eax, 0xfffffffc
push eax
push 0x68
push 0xffffffffffffffff
lea eax, [esp + 0x7c]
push eax
mov ecx, eax
push ecx
call fcn.10016420
jmp 0x10022e3b
cmp dword [esp + 0xc], 0xf42400
jne 0x1002215a
cmp word [esp + 0x24], 2
jne 0x10022e5d
cmp byte [esp + 0x13], 1
jne 0x10022e5d
push 0x1004f49c
lea eax, [esp + 0x774]
push 0xffffffffffffffff
push eax
call fcn.100396c0
lea eax, [esp + 0x7c]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10022cd6
sub eax, edx
add eax, 0xfffffffc
push eax
push 0xffffffffffffffff
lea ecx, [esp + 0x778]
push ecx
push 0xffffffffffffffff
lea edx, [esp + 0x80]
push edx
push 0xffffffffffffffff
mov eax, edx
push eax
call fcn.100165f0
push 0xffffffffffffffff
lea ecx, [esp + 0x74]
push ecx
push ebx
call fcn.1002be50
add esp, 0xc
jmp 0x10022b2e
cmp ax, 3
jne 0x10022da1
mov al, byte [esp + 0x13]
test al, al
jne 0x10022e4f
mov al, byte [esp + 0x34]
cmp al, 0x31
je 0x10022e4f
cmp al, 0x33
je 0x10022e4f
mov al, byte [esp + 0x1b]
test al, al
jne 0x10022e4f
mov edx, dword [esp + 0x1c]
cmp byte [edx], 0x69
mov byte [esp + 0x23], 0
jne 0x10022d77
movzx eax, word [esp + 0x48]
cmp byte [esp + eax + 0x6f], 0x6c
jne 0x10022d77
cmp byte [esp + eax + 0x6e], 0x67
jne 0x10022d77
mov byte [esp + eax + 0x70], 0x69
mov byte [esp + eax + 0x71], 0
mov eax, dword [0x10052034]
push eax
lea ecx, [esp + 0x74]
push 0xffffffffffffffff
push ecx
call fcn.10039670
push 0xffffffffffffffff
lea edx, [esp + 0x80]
push edx
push ebx
call fcn.1002be50
add esp, 0x18
jmp 0x10022e4b
cmp ax, 4
jne 0x10022e4f
mov al, byte [esp + 0x34]
cmp al, 0x31
je 0x10022e4f
cmp al, 0x32
je 0x10022e4f
cmp al, 0x34
je 0x10022e4f
mov cl, byte [esp + 0x1b]
test cl, cl
je 0x10022df2
mov eax, dword [esp + 0x1c]
mov al, byte [eax]
cmp al, 0x69
je 0x10022de1
cmp al, 0x65
jne 0x10022e4f
movzx edx, word [esp + 0x48]
mov al, byte [esp + edx + 0x6e]
cmp al, 0x63
je 0x10022df2
cmp al, 0x67
jne 0x10022e4f
test cl, cl
mov byte [esp + 0x23], 0
jne 0x10022e12
mov eax, dword [0x10052030]
push eax
lea ecx, [esp + 0x74]
push 0xffffffffffffffff
push ecx
call fcn.10039670
add esp, 0xc
jmp 0x10022e3b
push 0x1004f490
lea edx, [esp + 0x74]
push 0xffffffffffffffff
push edx
call fcn.10039670
mov eax, dword [0x10052030]
push eax
lea ecx, [esp + 0x80]
push 0xffffffffffffffff
push ecx
call fcn.10039670
add esp, 0x18
lea edx, [esp + 0x70]
push 0xffffffffffffffff
push edx
push ebx
call fcn.1002be50
add esp, 0xc
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 0xf42400
jne 0x1002215a
inc dword [esp + 0x30]
jmp 0x10022140
mov esi, dword [esp + 0x1c]
mov eax, esi
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10022e70
sub eax, edx
cmp eax, 2
jbe 0x10022ed8
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10022e83
sub eax, edx
lea eax, [eax + esi + 1]
push eax
push ebx
call fcn.10018c10
add esp, 8
jmp 0x10022ed8
test byte [esp + 0x873], 4
je 0x10022ed0
cmp word [esp + 0x30], 3
jne 0x10022ed0
cmp ax, 0x34
je 0x100240a4
cmp word [esp + 0x28], 0x33
je 0x100240a4
cmp word [esp + 0x28], 0xb
je 0x100240a4
mov dword [esp + 0xc], 0xf42400
cmp word [esp + 0x58], 0
jne 0x10022eff
mov eax, dword [esp + 0x24]
cmp ax, 2
ja 0x10022f1f
cmp ax, 3
jne 0x10022eff
mov ecx, dword [esp + 0x1c]
mov al, byte [ecx + 1]
cmp byte [ecx], al
jne 0x10022eff
cmp al, 0x69
je 0x10022f1f
cmp word [esp + 0x68], 1
jne 0x10021dad
mov eax, dword [esp + 0x28]
cmp ax, 0x34
je 0x10022f1f
cmp ax, 0x4f
jne 0x10021dad
add dword [esp + 0x24], 0xffff
mov byte [esp + 0x23], 0
movzx ecx, word [esp + 0x24]
mov edx, dword [esp + 0x1c]
lea eax, [edx + ecx + 2]
movzx ecx, byte [eax]
add eax, ecx
lea ecx, [eax + ecx*4 - 0xed]
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], eax
jmp 0x10021c90
cmp word [esp + 0x58], 0
jle 0x10022fc1
lea eax, [esp + 0x270]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10022f70
sub eax, edx
mov dl, byte [esp + eax + 0x26e]
xor ecx, ecx
cmp dl, 0x6c
setne cl
push 0xffffffffffffffff
lea edx, [esp + 0x474]
push edx
add ecx, 3
mov eax, ecx
push eax
movzx eax, si
push 0xffffffffffffffff
lea ecx, [eax + ebx + 0xc]
push ecx
push 0
push ebx
call fcn.1001cce0
add esp, 0x1c
cmp ax, 1
jne 0x10022fb9
mov word [ebx + 4], ax
jmp 0x10022fc1
mov dword [esp + 0xc], 0xf42400
mov al, byte [esp + 0x48]
mov dx, word [esp + 0x3c]
lea edi, [ebx + 0xc]
mov ecx, 0x14
lea esi, [esp + 0x370]
inc al
rep movsd dword es:[edi], dword [esi]
mov word [ebx + 0xa], dx
mov byte [ebx], al
jmp 0x10024239
cmp word [esp + 0x58], 0
mov byte [ebx + 3], 0
mov byte [esp + 0x13], 0
jle 0x1002301d
lea eax, [esp + 0x570]
push eax
lea ecx, [esp + 0x174]
push 0xffffffffffffffff
push ecx
call fcn.100396c0
mov eax, dword [esp + 0x68]
add esp, 0xc
mov dword [esp + 0x14], eax
jmp 0x10023021
mov eax, dword [esp + 0x14]
cmp ax, 8
jbe 0x100231ce
movzx eax, ax
lea eax, [esp + eax + 0x170]
mov cl, byte [eax - 5]
mov dword [esp + 0x40], eax
add eax, 0xfffffffb
cmp cl, 0x6d
jne 0x100231ce
push 5
push str.mente
push eax
call fcn.1002be50
add esp, 0xc
test eax, eax
jne 0x100231ce
movzx edx, word [esp + 0x14]
lea ecx, [edx - 5]
mov eax, ecx
shr ecx, 2
lea esi, [esp + 0x170]
lea edi, [esp + 0x70]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x40]
mov al, byte [esi - 6]
cmp al, 0x6c
je 0x10023090
cmp al, 0x72
jne 0x100230ae
movzx ecx, byte [esi - 7]
cmp byte [ecx + 0x10060d00], 0
je 0x100230ae
lea eax, [esp + edx + 0x70]
mov byte [eax - 5], 0x65
mov byte [eax - 4], 0
jmp 0x10023131
cmp al, 0x61
jne 0x100230bf
lea eax, [esp + edx + 0x70]
mov byte [eax - 6], 0x6f
jmp 0x1002312d
cmp al, 0x65
jne 0x100231ce
mov cl, byte [esi - 7]
cmp cl, 0x6c
je 0x100230da
cmp cl, 0x72
je 0x100230da
lea eax, [esp + edx + 0x70]
jmp 0x1002312d
cmp al, 0x65
jne 0x100231ce
mov cl, byte [esi - 7]
cmp cl, 0x6c
je 0x100230ef
cmp cl, 0x72
jne 0x100230fa
cmp cl, byte [esi - 8]
jne 0x100230fa
lea eax, [esp + edx + 0x70]
jmp 0x1002312d
cmp al, 0x65
jne 0x100231ce
mov edx, dword [esp + 0x40]
cmp byte [edx - 7], 0x72
jne 0x100231ce
mov eax, edx
movzx ecx, byte [eax - 8]
mov al, byte [ecx + 0x10060d00]
test al, al
jne 0x100231ce
movzx eax, word [esp + 0x14]
lea eax, [esp + eax + 0x70]
mov byte [eax - 5], 0
mov ecx, dword [ebx + 0x31c]
test ecx, ecx
jne 0x10023918
cmp word [esp + 0x14], 0xd
jbe 0x10023918
mov edx, dword [esp + 0x40]
cmp byte [edx - 7], 0x6d
jne 0x10023918
mov ecx, edx
cmp byte [ecx - 0xa], 0x73
jne 0x10023918
mov esi, dword [esp + 0x40]
add esi, 0xfffffff5
mov ecx, 3
mov edi, str.issima
xor edx, edx
repe cmpsw word [esi], word es:[edi]
jne 0x10023918
mov byte [eax - 6], 0x6f
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], eax
add eax, 0xfffb
mov dword [esp + 0x14], eax
lea eax, [esp + 0x170]
push eax
lea ecx, [esp + 0x574]
push 0xffffffffffffffff
push ecx
mov byte [esp + 0x1f], 1
call fcn.100396c0
lea edx, [esp + 0x7c]
push edx
lea eax, [esp + 0x180]
push 0xffffffffffffffff
push eax
call fcn.100396c0
add esp, 0x18
jmp 0x10023363
cmp byte [esp + 0x13], 1
jne 0x100231fc
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x570]
push edx
lea eax, [esp + 0x174]
push 0xffffffffffffffff
push eax
mov dword [esp + 0x20], ecx
call fcn.100396c0
add esp, 0xc
mov byte [esp + 0x13], 0
cmp word [esp + 0x14], 7
jbe 0x10023363
movzx eax, word [esp + 0x14]
cmp byte [esp + eax + 0x16c], 0x62
jne 0x10023363
cmp byte [esp + eax + 0x16d], 0x69
jne 0x10023363
cmp byte [esp + eax + 0x16e], 0x6c
jne 0x10023363
mov cl, byte [esp + eax + 0x16b]
cmp cl, 0x69
mov byte [esp + 0x2f], cl
je 0x10023250
cmp cl, 0x61
jne 0x10023363
mov cl, byte [esp + eax + 0x16f]
cmp cl, 0x69
je 0x10023265
cmp cl, 0x65
jne 0x10023363
lea ecx, [eax - 5]
mov edx, ecx
shr ecx, 2
lea esi, [esp + 0x170]
lea edi, [esp + 0x70]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea esi, [esp + eax + 0x6b]
mov al, byte [esp + 0x2f]
xor edi, edi
cmp al, 0x61
mov byte [esi], 0
jne 0x100232a6
mov eax, dword [0x10052038]
push eax
lea ecx, [esp + 0x74]
push 0xffffffffffffffff
push ecx
call fcn.10039670
jmp 0x100232be
mov edx, dword [0x10052034]
push edx
lea eax, [esp + 0x74]
push 0xffffffffffffffff
push eax
call fcn.10039670
mov edi, 1
add esp, 0xc
push 0xffffffffffffffff
lea ecx, [esp + 0x74]
push ecx
push ebx
mov word [ebx + 6], 0x80
call fcn.1002be50
add esp, 0xc
cmp eax, 0xf42400
mov dword [esp + 0xc], eax
jne 0x10023306
cmp di, 1
jne 0x100232ff
push 0xffffffffffffffff
lea edx, [esp + 0x74]
push edx
push ebx
mov byte [esi], 0x69
call fcn.1002be50
add esp, 0xc
mov dword [esp + 0xc], eax
cmp eax, 0xf42400
je 0x10023363
mov al, byte [ebx + 0xc]
and al, 0xe0
xor esi, esi
cmp al, 0x80
jne 0x10023316
mov esi, 5
movzx ecx, si
mov al, byte [ecx + ebx + 0xc]
mov dl, al
and dl, 0xe0
cmp dl, 0xc0
jne 0x10023334
and al, 1
dec al
neg al
sbb eax, eax
inc eax
lea esi, [esi + eax*2 + 5]
movzx eax, si
mov cl, byte [eax + ebx + 0xc]
lea esi, [eax + ebx]
and cl, 0xe0
cmp cl, 0x20
jne 0x10023363
mov al, byte [esi + 0xf]
mov dl, al
and dl, 0xc0
cmp dl, 0x40
je 0x10023363
and al, 0x38
cmp al, 0x28
je 0x10023363
test byte [esi + 0xe], 0xf
je 0x10023a2b
cmp word [esp + 0x14], 4
mov byte [esp + 0x1b], 0
jbe 0x10023aaa
cmp dword [ebx + 0x31c], 1
mov edi, dword [0x10060cf0]
mov dword [esp + 0x1c], edi
jne 0x1002339d
add edi, 0x65
mov dword [esp + 0x1c], edi
mov eax, 0x11
mov dword [esp + 0x5c], 0x16
jmp 0x100233c4
cmp byte [esp + 0x13], 1
jne 0x100233ba
add edi, 0x71
mov dword [esp + 0x1c], edi
mov eax, 0x13
mov dword [esp + 0x5c], 0x14
jmp 0x100233c4
xor eax, eax
mov dword [esp + 0x5c], 0x1c
mov dword [esp + 0x38], 0x64
mov dword [esp + 0x64], 0x73
mov dword [esp + 0x28], eax
jmp 0x100233e0
cmp ax, word [esp + 0x5c]
jae 0x10023aaa
cmp ax, 0x12
jbe 0x100233f9
mov dword [esp + 0x64], 0x61
mov eax, edi
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10023400
movzx esi, word [esp + 0x14]
sub eax, edx
mov dword [esp + 0x48], eax
movzx eax, ax
lea ecx, [eax + 1]
cmp esi, ecx
jle 0x1002346e
mov cl, byte [edi]
mov edx, esi
sub edx, eax
cmp byte [esp + edx + 0x170], cl
lea edx, [esp + edx + 0x170]
jne 0x1002346e
cmp byte [edx - 1], cl
je 0x1002346e
mov cl, byte [esp + esi + 0x16f]
cmp cl, 0x61
je 0x10023452
cmp cl, 0x65
je 0x10023452
cmp cl, 0x69
je 0x10023452
cmp cl, 0x6f
jne 0x1002346e
mov edi, dword [esp + 0x1c]
mov esi, edx
lea ecx, [eax - 1]
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x10023466
sbb edx, edx
sbb edx, 0xffffffff
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x38], edx
cmp word [esp + 0x38], 0
je 0x100234d4
cmp byte [eax + edi - 1], 0x6f
jne 0x100234c8
cmp byte [eax + edi - 2], 0x69
jne 0x100234c8
movzx ecx, word [esp + 0x14]
cmp byte [esp + ecx + 0x16f], 0x65
jne 0x100234c8
movzx edx, word [esp + 0x14]
mov edi, dword [esp + 0x1c]
sub edx, eax
lea ecx, [eax - 2]
lea esi, [esp + edx + 0x171]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x100234b3
sbb eax, eax
sbb eax, 0xffffffff
test ax, ax
mov dword [esp + 0x38], eax
jne 0x100238af
add dword [esp + 0x48], 0xffff
cmp word [esp + 0x38], 0
jne 0x100238af
movzx edi, word [esp + 0x48]
mov eax, dword [esp + 0x1c]
cmp byte [edi + eax - 1], 0x6f
jne 0x10023515
cmp byte [edi + eax - 2], 0x69
jne 0x10023515
movzx eax, word [esp + 0x14]
lea ecx, [esp + eax + 0x170]
mov al, byte [ecx - 1]
cmp al, 0x65
je 0x10023502
cmp al, 0x69
jne 0x10023515
cmp byte [ecx - 2], 0x69
jne 0x10023515
mov dword [esp + 0x38], 1
jmp 0x100238af
cmp word [esp + 0x38], 0
jne 0x100238af
cmp word [esp + 0x64], 0x61
mov dword [esp + 0x38], 0x64
jne 0x10023537
or byte [ebx + 6], 0x80
jmp 0x1002353b
or byte [ebx + 6], 0x40
mov al, byte [esp + 0x13]
test al, al
je 0x10023549
mov word [ebx + 6], 0x20
movzx esi, word [esp + 0x14]
mov al, byte [esp + esi + 0x16f]
lea ecx, [esp + 0x170]
push ecx
lea edx, [esp + 0x74]
push 0xffffffffffffffff
push edx
mov byte [esp + 0x50], al
call fcn.100396c0
sub esi, edi
mov al, byte [esp + esi + 0x7b]
add esp, 0xc
cmp al, 0x63
je 0x1002357e
cmp al, 0x67
jne 0x1002359a
mov ecx, dword [esp + 0x1c]
mov cl, byte [ecx]
cmp cl, 0x69
je 0x1002358e
cmp cl, 0x65
jne 0x1002359a
cmp byte [esp + esi + 0x70], 0x68
je 0x1002359a
mov byte [esp + 0x1b], 1
mov cl, byte [esp + esi + 0x6e]
cmp cl, 0x63
je 0x100235a8
cmp cl, 0x67
jne 0x100235d6
cmp al, 0x68
jne 0x100235d6
mov edx, dword [esp + 0x1c]
mov al, byte [edx]
cmp al, 0x69
je 0x100235ba
cmp al, 0x65
jne 0x100235d6
mov al, byte [esp + 0x44]
cmp al, 0x69
mov byte [esp + 0x1b], 2
je 0x100235da
cmp al, 0x65
je 0x100235da
mov byte [esp + esi + 0x6f], al
mov byte [esp + esi + 0x70], 0
jmp 0x100235e3
mov al, byte [esp + 0x44]
mov byte [esp + esi + 0x70], al
mov byte [esp + esi + 0x71], 0
push 0xffffffffffffffff
lea ecx, [esp + 0x74]
push ecx
push ebx
call fcn.1002be50
mov edi, eax
add esp, 0xc
cmp edi, 0xf42400
mov dword [esp + 0xc], edi
je 0x10023612
mov dl, byte [ebx + 0xc]
and dl, 0xe0
cmp dl, 0x80
jne 0x10023626
test byte [ebx + 0xd], 0x10
je 0x10023626
lea eax, [esp + 0x70]
push eax
push ebx
call fcn.1001ec50
mov edi, eax
add esp, 8
mov dword [esp + 0xc], edi
cmp word [esp + 0x64], 0x61
jne 0x100236af
cmp edi, 0xf42400
je 0x10023645
mov cl, byte [ebx + 0xc]
and cl, 0xe0
cmp cl, 0x40
jne 0x100236af
lea eax, [esp + 0x70]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10023650
sub eax, edx
movzx edx, byte [ebx + 0x31c]
push edx
lea ecx, [esp + 0x10]
push ecx
push 0x1004f3a4
push 0x3e8
push eax
lea edx, [esp + 0x84]
push edx
push ebx
call fcn.1001e630
add esp, 0x1c
cmp ax, 2
jne 0x100236bb
mov edi, dword [esp + 0xc]
mov byte [ebx + 0xf], 1
mov word [ebx + 0xa], 5
mov byte [ebx + 0xc], 0x8c
mov byte [ebx + 0xd], 7
mov byte [ebx + 0xe], 0
mov al, byte [0x100600f4]
shl al, 6
or al, 1
mov byte [ebx + 0xf], al
cmp edi, 0xf42400
jne 0x10023765
push 0xffffffffffffffff
lea ecx, [esp + 0x74]
push ecx
push ebx
mov byte [esp + esi + 0x7c], 0x65
call fcn.1002be50
mov dl, byte [ebx + 0xc]
and dl, 0xe0
add esp, 0xc
cmp dl, 0xc0
mov edi, eax
mov dword [esp + 0xc], edi
je 0x100236ed
cmp edi, 0xf42400
jne 0x10023765
push 0xffffffffffffffff
lea eax, [esp + 0x74]
push eax
push ebx
mov byte [esp + esi + 0x7c], 0x6f
call fcn.1002be50
mov cl, byte [ebx + 0xc]
and cl, 0xe0
add esp, 0xc
cmp cl, 0xc0
mov edi, eax
mov dword [esp + 0xc], edi
je 0x1002371b
cmp edi, 0xf42400
jne 0x10023765
mov edx, dword [esp + 0x1c]
cmp byte [edx], 0x69
jne 0x100238a7
cmp byte [esp + 0x1b], 2
jne 0x10023734
mov byte [esp + esi + 0x6f], 0x68
push 0xffffffffffffffff
lea eax, [esp + 0x74]
push eax
push ebx
mov byte [esp + esi + 0x7c], 0x69
mov byte [esp + esi + 0x7d], 0x6f
mov byte [esp + esi + 0x7e], 0
call fcn.1002be50
mov edi, eax
add esp, 0xc
cmp edi, 0xf42400
mov dword [esp + 0xc], edi
je 0x100238a7
mov dl, byte [ebx + 0xc]
mov al, dl
and al, 0xe0
cmp al, 0x80
jne 0x100237b1
cmp word [esp + 0x28], 0x13
jae 0x10023785
cmp dword [ebx + 0x31c], 1
je 0x10023aaa
cmp al, 0x80
jne 0x100237b1
mov cl, dl
and cl, 0x1c
cmp cl, 0x10
je 0x1002379c
cmp cl, 0xc
jne 0x10023aaa
cmp al, 0x80
jne 0x100237b1
cmp word [esp + 0x28], 0x13
jne 0x100237b1
test dl, 1
jne 0x10023aaa
cmp al, 0xc0
jne 0x100237ed
cmp word [esp + 0x28], 0x11
jb 0x100237ca
cmp dword [ebx + 0x31c], 1
je 0x10023aaa
cmp al, 0xc0
jne 0x100237ed
mov cl, dl
and cl, 0xc
cmp cl, 8
je 0x10023aaa
cmp word [esp + 0x28], 0x13
jne 0x100237ed
test dl, 2
je 0x10023aaa
mov dl, byte [esp + 0x1b]
test dl, dl
je 0x10023847
cmp al, 0x80
mov ecx, 1
jne 0x10023803
mov ecx, 2
movzx ecx, cx
mov cl, byte [ecx + ebx + 0xc]
and cl, 0xf
cmp cl, 8
jne 0x10023830
cmp word [ebx + 0xa], 5
je 0x10023aaa
mov dl, byte [ebx + 0x11]
and dl, 0xe0
cmp dl, 0x40
jne 0x10023aaa
mov dl, byte [esp + 0x1b]
cmp dl, 1
jne 0x1002383a
cmp cl, 5
jmp 0x10023841
cmp dl, 2
jne 0x10023847
test cl, cl
je 0x10023aaa
cmp al, 0x80
jne 0x10023898
movzx ecx, byte [esp + 0x44]
add ecx, 0xffffff9f
cmp ecx, 0xe
mov word [ebx + 0xa], 5
ja case.0x10023865.98
movzx ecx, byte [ecx + 0x1002438c]
jmp dword [ecx*4 + 0x10024378]
mov cl, 1
mov byte [ebx], 0
mov byte [esp + 0x44], cl
jmp 0x1002389c
mov cl, 1
mov byte [ebx], 2
mov byte [esp + 0x44], cl
jmp 0x1002389c
mov cl, 1
mov byte [ebx], 4
mov byte [esp + 0x44], cl
jmp 0x1002389c
mov byte [ebx], 3
mov cl, 1
mov byte [esp + 0x44], cl
jmp 0x1002389c
mov cl, byte [esp + 0x44]
cmp al, 0xc0
je 0x100238d0
cmp cl, 1
je 0x100238f5
jmp 0x100238af
mov dword [esp + 0x28], 0x28
movzx edx, word [esp + 0x48]
mov eax, dword [esp + 0x1c]
lea ecx, [eax + edx + 1]
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], eax
mov edi, ecx
jmp 0x100233e0
movzx edx, word [esp + 0x48]
movzx eax, word [esp + 0x14]
sub eax, edx
cmp byte [esp + eax + 0x70], 0x65
mov byte [ebx], 0
jne 0x100238e9
mov byte [ebx], 0x80
cmp cl, 0x65
je 0x100238f3
cmp cl, 0x69
jne 0x100238f5
inc byte [ebx]
mov eax, dword [esp + 0x28]
cmp ax, 0x10
jbe 0x10023ffd
cmp ax, 0x16
jae 0x10023ffd
cmp byte [esp + 0x13], 1
jne 0x10023a77
push 0xffffffffffffffff
lea ecx, [esp + 0x74]
push ecx
push ebx
xor esi, esi
xor edi, edi
mov word [ebx + 6], 0x20
call fcn.1002be50
mov cl, byte [ebx + 0xc]
mov dl, cl
and dl, 0xe0
add esp, 0xc
cmp dl, 0xc0
mov dword [esp + 0xc], eax
jne 0x10023951
and cl, 1
dec cl
neg cl
sbb ecx, ecx
inc ecx
lea esi, [ecx + ecx + 5]
cmp eax, 0xf42400
je 0x10023971
cmp dl, 0x40
je 0x10023971
movzx edx, word [ebx + 0xa]
cmp edx, esi
jle 0x100239d4
mov cl, byte [esi + ebx + 0xc]
and cl, 0xe0
cmp cl, 0x40
jne 0x100239d4
lea eax, [esp + 0x70]
mov dword [esp + 0xc], 0xf4240
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10023980
sub eax, edx
mov edx, dword [ebx + 0x31c]
push edx
lea ecx, [esp + 0x10]
push ecx
push 0x1004f3a4
push 0x3e8
push eax
lea edx, [esp + 0x84]
push edx
push ebx
call fcn.1001e630
add esp, 0x1c
mov edi, eax
movzx eax, word [esp + 0x14]
cmp byte [esp + eax + 0x16a], 0x61
jne 0x100231ce
cmp di, 2
jne 0x100231ce
mov eax, dword [esp + 0xc]
cmp eax, 0xf42400
je 0x100231ce
mov al, byte [ebx + 0xc]
mov cl, al
and cl, 0xe0
cmp cl, 0x80
je 0x100239fb
cmp di, 2
jne 0x100231ce
cmp cl, 0x80
jne 0x10023a0c
and al, 0x1c
cmp al, 0xc
jne 0x100231ce
mov byte [0x100600f4], 0
add dword [esp + 0xc], 0x20000
mov word [ebx + 0xa], 2
mov cl, byte [0x100600f4]
or cl, 0x78
mov byte [ebx + 0xc], cl
jmp 0x10024239
mov cl, byte [ebx + 0xd]
movzx edx, word [esp + 0x14]
mov al, byte [esp + edx + 0x16f]
shl cl, 6
cmp al, 0x69
mov byte [0x100600f4], cl
mov byte [ebx + 0xc], 0x90
mov byte [ebx + 0xd], 1
mov byte [ebx + 0xe], 0
mov byte [ebx + 0xf], 0
mov word [ebx + 0xa], 5
jne 0x10023a60
mov byte [ebx], 1
mov al, byte [0x100600f4]
or al, 1
mov byte [ebx + 0xd], al
add dword [esp + 0xc], 0x30000
jmp 0x10024239
cmp edi, 0x10000
jbe 0x10023a96
movzx edx, ax
add edx, 0xfffa
shl edx, 0x10
add edi, edx
mov dword [esp + 0xc], edi
jmp 0x10024239
movzx eax, ax
sub eax, 0xa
shl eax, 0x10
add edi, eax
mov dword [esp + 0xc], edi
jmp 0x10024239
cmp byte [esp + 0x13], 1
jne 0x10023ad5
mov edi, dword [esp + 0x30]
lea ecx, [esp + 0x570]
push ecx
lea edx, [esp + 0x174]
push 0xffffffffffffffff
push edx
mov dword [esp + 0x20], edi
call fcn.100396c0
add esp, 0xc
jmp 0x10023ad9
mov edi, dword [esp + 0x14]
mov eax, dword [ebx + 0x31c]
test eax, eax
mov dword [esp + 0xc], 0xf42400
jne 0x10023def
cmp di, 4
jbe 0x10023cb2
mov eax, dword [0x10060a68]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x38], 0x64
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x1c]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10023b20
sub eax, edx
cmp ax, word [esp + 0x14]
mov dword [esp + 0x50], eax
jae 0x10023b51
mov edi, dword [esp + 0x1c]
movzx ecx, ax
lea esi, [esp + 0x170]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x10023b4d
sbb eax, eax
sbb eax, 0xffffffff
mov dword [esp + 0x38], eax
cmp word [esp + 0x38], 0
jne 0x10023c8a
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x1c]
movzx esi, dx
mov cl, byte [esi + ecx - 1]
movzx eax, cl
mov al, byte [eax + 0x10060d00]
test al, al
je 0x10023bd8
movzx edi, byte [esp + esi + 0x170]
cmp byte [edi + 0x10060d00], 0
jne 0x10023bb0
movzx edi, byte [esp + esi + 0x171]
cmp byte [edi + 0x10060d00], 0
je 0x10023bb0
cmp word [esp + 0x28], 0xf
jne 0x10023bb0
mov dword [esp + 0x38], 1
jmp 0x10023c8a
test al, al
je 0x10023bd8
mov al, byte [esp + esi + 0x170]
movzx edi, al
cmp byte [edi + 0x10060d00], 0
je 0x10023bd8
cmp cl, al
jne 0x10023bd8
mov dword [esp + 0x38], 1
jmp 0x10023c8a
cmp dx, 3
mov dword [esp + 0x38], 0x64
jb 0x10023bea
or byte [ebx + 6], 0x40
push 0xffffffffffffffff
lea edi, [esp + esi + 0x174]
push edi
push ebx
call fcn.1002be50
add esp, 0xc
cmp eax, 0xf42400
mov dword [esp + 0xc], eax
jne 0x10023d34
push edi
push ebx
call fcn.1001ec50
add esp, 8
cmp eax, 0xf42400
mov dword [esp + 0xc], eax
jne 0x10023d34
push edi
lea ecx, [esp + 0x74]
push 0xffffffffffffffff
push ecx
call fcn.100396c0
movzx edx, word [esp + 0x20]
push 0xffffffffffffffff
lea eax, [esp + 0x80]
push eax
sub edx, esi
push ebx
mov byte [esp + edx + 0x87], 0x6f
call fcn.1002be50
mov cl, byte [ebx + 0xc]
and cl, 0xe0
add esp, 0x18
cmp cl, 0x40
mov esi, eax
jne 0x10023c7a
mov cl, byte [ebx + 0xd]
mov dl, cl
and dl, 0xe0
cmp dl, 0x80
jne 0x10023c7a
and cl, 0x18
cmp cl, 8
je 0x10023da7
mov dword [esp + 0xc], 0xf42400
mov dword [esp + 0x28], 0x16
movzx eax, word [esp + 0x50]
mov ecx, dword [esp + 0x1c]
lea edx, [ecx + eax + 1]
mov eax, dword [esp + 0x28]
inc eax
cmp ax, 0x14
mov dword [esp + 0x1c], edx
mov dword [esp + 0x28], eax
jb 0x10023b12
mov edi, dword [esp + 0x14]
mov eax, dword [ebx + 0x31c]
test eax, eax
jne 0x10023def
cmp di, 7
jb 0x10023e78
push 0x100
lea edx, [esp + 0x174]
push edx
lea eax, [esp + 0x778]
push 0xffffffffffffffff
push eax
call fcn.10039730
push 1
push 6
lea ecx, [esp + 0x788]
push 0xffffffffffffffff
push ecx
call fcn.100198b0
add esp, 0x20
cmp ax, 1
jne 0x10023def
mov word [ebx + 0xa], 5
mov byte [ebx + 0xc], 0x9c
mov byte [ebx + 0xd], 8
mov byte [ebx + 0xe], 0
mov byte [ebx + 0xf], 8
mov eax, 0x989680
mov ecx, dword [esp + 0xa74]
call fcn.10049461
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp word [esp + 0x50], 3
jb 0x10023c82
mov cl, byte [ebx + 0xc]
and cl, 0xe0
cmp cl, 0x80
jne 0x10023d53
mov word [ebx + 0xa], 5
jmp 0x10023d73
cmp cl, 0xc0
jne 0x10023d60
mov word [ebx + 0xa], 5
jmp 0x10023d73
cmp cl, 0xe0
je 0x10023d6a
cmp cl, 0x20
jne 0x10023d73
mov eax, 0xf42400
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x28]
cmp cx, 0x13
je 0x10023c8a
cmp eax, 0xf42400
je 0x10023c8a
cmp eax, 0x10000
jbe 0x10023ddb
movzx edx, cx
add edx, 0x24
shl edx, 0x10
add eax, edx
mov dword [esp + 0xc], eax
jmp 0x10024239
cmp esi, 0x10000
jbe 0x10023dc5
movzx eax, word [esp + 0x28]
add eax, 0x24
shl eax, 0x10
add esi, eax
mov dword [esp + 0xc], esi
jmp 0x10024239
movzx ecx, word [esp + 0x28]
add ecx, 0x11
shl ecx, 0x10
add esi, ecx
mov dword [esp + 0xc], esi
jmp 0x10024239
movzx ecx, cx
add ecx, 0x11
shl ecx, 0x10
add eax, ecx
mov dword [esp + 0xc], eax
jmp 0x10024239
cmp di, 7
jbe 0x10023e78
movzx esi, di
mov al, byte [esp + esi + 0x16f]
cmp al, 0x65
lea esi, [esp + esi + 0x170]
je 0x10023e12
cmp al, 0x69
jne 0x10023e78
cmp byte [esi - 3], 0x6e
jne 0x10023e78
cmp byte [esi - 2], 0x6e
jne 0x10023e78
cmp byte [esi - 4], 0x65
jne 0x10023e78
lea edx, [esp + 0x170]
push edx
call fcn.1001fee0
add esp, 4
cmp ax, 1
jne 0x10023e78
cmp byte [esi - 1], 0x69
mov byte [ebx], 0x80
mov byte [ebx + 0xc], 0xc2
mov byte [ebx + 0xd], 0xb
mov byte [ebx + 0xe], 0x1c
mov byte [ebx + 0xf], 0
mov byte [ebx + 0x10], 5
mov word [ebx + 0xa], 5
jne 0x10023e60
mov byte [ebx], 0x81
mov eax, 0x989681
mov ecx, dword [esp + 0xa74]
call fcn.10049461
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp di, 0xa
jbe 0x10023f64
movzx esi, di
mov al, byte [esp + esi + 0x16e]
cmp al, 0x6d
lea esi, [esp + esi + 0x170]
jne 0x10023f64
cmp byte [esi - 4], 0x73
jne 0x10023f64
cmp byte [esi - 3], 0x69
jne 0x10023f64
cmp byte [esi - 5], 0x65
jne 0x10023f64
lea eax, [esp + 0x170]
push eax
call fcn.1001fee0
add esp, 4
cmp ax, 1
jne 0x10023f64
movzx ecx, byte [esi - 1]
add ecx, 0xffffff9f
cmp ecx, 0xe
mov eax, 0x989682
mov word [ebx + 0xa], 5
mov byte [ebx + 0xc], 0x90
mov byte [ebx + 0xd], 7
mov byte [ebx + 0xe], 0
mov byte [ebx + 0xf], 1
ja case.0x10023f05.98
movzx ecx, byte [ecx + 0x100243b0]
jmp dword [ecx*4 + 0x1002439c]
mov byte [ebx], 0
mov ecx, dword [esp + 0xa74]
call fcn.10049461
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [ebx], 2
mov ecx, dword [esp + 0xa74]
call fcn.10049461
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [ebx], 1
mov ecx, dword [esp + 0xa74]
call fcn.10049461
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [ebx], 3
mov ecx, dword [esp + 0xa74]
call fcn.10049461
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x31c]
test eax, eax
jne 0x10024239
cmp word [esp + 0x14], 4
jbe 0x10024239
mov edi, dword [0x10060a64]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x60], 0x10
jmp 0x10023f96
mov edi, dword [esp + 0x1c]
mov eax, edi
lea edx, [eax + 1]
jmp 0x10023fa0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10023fa0
sub eax, edx
mov edx, eax
cmp dx, word [esp + 0x14]
jae 0x10023fd9
movzx eax, word [esp + 0x14]
movzx esi, dx
sub eax, esi
lea ecx, [esi - 1]
lea esi, [esp + eax + 0x170]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x10023fd1
sbb eax, eax
sbb eax, 0xffffffff
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
cmp word [esp + 0x38], 0
jne 0x10023fe7
mov word [ebx + 6], 0x40
mov eax, dword [esp + 0x60]
movzx ecx, dx
lea edx, [edi + ecx + 1]
dec eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x60], eax
jne 0x10023f92
mov dword [esp + 0xc], 0xf42400
jmp 0x10024239
test si, si
mov byte [ebx], 2
je 0x1002402f
sub word [ebx + 0xa], si
movzx eax, word [ebx + 0xa]
movzx ecx, si
push eax
lea edx, [ecx + ebx + 0xc]
push edx
lea eax, [ebx + 0xc]
push eax
call fcn.1002be50
add esp, 0xc
cmp word [esp + 0x3c], 2
jne 0x1002403e
mov byte [ebx], 3
mov byte [ebx + 1], 0x10
lea ecx, [esp + 0x70]
push ecx
lea edx, [ebx + 0x10c]
push 0xffffffffffffffff
push edx
call fcn.100396c0
add esp, 0xc
jmp 0x10024239
mov ecx, dword [esp + 0x3c]
mov word [ebx + 0xa], cx
movzx ecx, cx
mov edx, ecx
shr ecx, 2
lea eax, [ebx + 0xc]
mov edi, eax
lea esi, [esp + 0x370]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x24]
sub word [ebx + 0xa], cx
movzx edx, word [ebx + 0xa]
movzx ecx, cx
push edx
lea edx, [ecx + ebx + 0xc]
push edx
push eax
call fcn.1002be50
add esp, 0xc
mov byte [ebx], 3
jmp 0x10024239
mov eax, dword [esp + 0x3c]
movzx ecx, ax
mov word [ebx + 0xa], ax
mov eax, ecx
shr ecx, 2
lea esi, [esp + 0x870]
lea edi, [ebx + 0xc]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, 1
cmp word [esp + 0x58], 0
jne 0x100240dc
mov byte [ebx], 1
jmp 0x1002420e
lea eax, [esp + 0x270]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100240e6
sub eax, edx
mov dl, byte [esp + eax + 0x26e]
xor ecx, ecx
cmp dl, 0x6c
setne cl
lea edx, [ebx + 0x10c]
push edx
lea eax, [esp + 0x474]
push 0xffffffffffffffff
push eax
add ecx, 3
mov edi, ecx
call fcn.100396c0
push 0xffffffffffffffff
lea ecx, [esp + 0x480]
push ecx
push edi
push 0xffffffffffffffff
lea edx, [ebx + 0xc]
push edx
push 0
push ebx
call fcn.1001cce0
add esp, 0x28
cmp ax, si
jne 0x10024206
cmp word [esp + 0x68], si
mov byte [ebx], 3
jne 0x1002420e
mov al, byte [ebx + 1]
mov ecx, dword [esp + 0x28]
and al, 1
or al, 0x70
cmp cx, 0x35
mov byte [ebx + 1], al
jne 0x1002416a
or al, 8
mov byte [ebx + 1], al
jmp 0x1002420e
cmp cx, 0x40
je 0x100241ff
cmp cx, 0x46
je 0x100241ff
cmp cx, 0x4d
je 0x100241ff
lea edi, [esp + 0x70]
lea edx, [edi + 1]
nop
mov cl, byte [edi]
inc edi
test cl, cl
jne 0x10024190
sub edi, edx
cmp edi, 3
jb 0x100241f0
movsx ecx, word [esp + 0x4c]
mov cl, byte [esp + ecx + 0x170]
cmp cl, 0x69
mov byte [esp + 0x2f], cl
jne 0x100241d4
lea edi, [esp + 0x70]
lea edx, [edi + 1]
lea ebx, [ebx]
mov cl, byte [edi]
inc edi
test cl, cl
jne 0x100241c0
cmp cl, 0x61
jne 0x100241f8
mov dword [esp + 0xc], 0xf42400
or al, 0xc
mov byte [ebx + 1], al
jmp 0x1002420e
or al, 6
mov byte [ebx + 1], al
jmp 0x1002420e
mov dword [esp + 0xc], 0xf42400
cmp dword [ebx + 0x31c], esi
jne 0x10024239
cmp word [esp + 0x28], 0x5a
jne 0x10024239
movzx edx, word [esp + 0x14]
mov eax, dword [ebx + 0x324]
mov cl, byte [eax + edx - 1]
cmp cl, 0xe8
lea eax, [eax + edx - 1]
jne 0x10024239
mov byte [eax], 0xe9
mov eax, dword [ebx + 0x31c]
mov esi, 1
cmp eax, esi
mov eax, dword [esp + 0xc]
jne 0x1002426a
cmp eax, 0xf42400
je 0x1002429c
mov cl, byte [ebx + 0xc]
and cl, 0xe0
movzx cx, cl
cmp cx, 0x80
jne 0x100242af
test byte [ebx + 0xe], 0x20
jne case.0x10023f05.98
cmp eax, 0xf42400
je 0x1002429c
mov dl, byte [ebx + 0xc]
and dl, 0xe0
cmp dl, 0x40
jne 0x1002429c
mov cl, byte [ebx + 2]
test cl, cl
je 0x1002429c
mov dl, byte [ebx]
shl cl, 4
or dl, cl
cmp word [ebx + 4], si
mov byte [ebx + 2], cl
mov byte [ebx], dl
mov cl, dl
jne 0x1002429c
or cl, 0x80
mov byte [ebx], cl
mov ecx, dword [esp + 0xa74]
call fcn.10049461
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp cx, 0xc0
jne 0x100242bc
test byte [ebx + 0xd], 0x10
jmp 0x10024268
cmp cx, 0x20
jne 0x1002426a
test byte [ebx + 0xd], 4
je 0x1002426a
mov ecx, dword [esp + 0xa74]
mov eax, 0xf42400
call fcn.10049461
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret