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

Disassembly:
sub esp, 0x58
push ebp
mov ebp, dword [esp + 0x68]
push esi
mov esi, dword [esp + 0x64]
mov edx, dword [ebp + 0x14]
push edi
lea ecx, [esi + eax]
xor edi, edi
push 0x280
mov dword [esp + 0x30], esi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x28], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x44], edi
call fcn.0041e494
add esp, 4
cmp eax, edi
mov dword [esp + 0x58], eax
jne 0x417be3
pop edi
pop esi
mov eax, 0xc
pop ebp
add esp, 0x58
ret
mov ecx, dword [ebp + 0x1c]
mov eax, dword [esp + 0x6c]
push ebx
mov ebx, 0x20
and ecx, 0xffffff97
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], edi
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x1c], ecx
mov dword [ebp + 8], edi
mov dword [ebp + 0x18], edi
call fcn.00417340
cmp dword [ebp + 4], edi
jne 0x417c43
mov eax, dword [ebp]
push ebx
cmp eax, edi
je 0x417c24
push eax
call fcn.0041e521
add esp, 8
jmp 0x417c2c
call fcn.0041e494
add esp, 4
cmp eax, edi
mov dword [ebp], eax
jne 0x417c40
pop ebx
pop edi
pop esi
mov eax, 0xc
pop ebp
add esp, 0x58
ret
mov dword [ebp + 4], ebx
mov eax, dword [esp + 0x38]
mov edi, dword [ebp]
cmp esi, eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x2c], edi
je 0x41a0ee
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
cmp eax, ecx
je 0x41a086
mov cl, byte [eax]
inc eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x3c]
test eax, eax
mov byte [esp + 0x34], cl
je 0x417c8e
mov edx, dword [esp + 0x34]
and edx, 0xff
mov al, byte [edx + eax]
mov byte [esp + 0x34], al
mov eax, dword [esp + 0x34]
and eax, 0xff
add eax, 0xfffffff6
cmp eax, 0x72
ja case.0x417cab.22
xor ecx, ecx
mov cl, byte [eax + 0x41a144]
jmp dword [ecx*4 + 0x41a110]
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x30]
lea edx, [ecx + 1]
cmp eax, edx
je 0x417cd7
mov edx, dword [esp + 0x70]
test dl, 8
jne 0x417cd7
call fcn.00417420
test al, al
je case.0x417cab.22
mov edi, dword [esp + 0x20]
mov esi, dword [ebp]
mov ecx, dword [ebp + 4]
mov eax, edi
sub eax, esi
inc eax
cmp eax, ecx
jbe 0x417d79
mov ebx, dword [esp + 0x28]
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x417d16
mov dword [ebp + 4], 0x10000
mov ecx, dword [ebp + 4]
push ecx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x417d66
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
sub eax, esi
add edi, eax
add edx, eax
test ecx, ecx
mov dword [esp + 0x2c], edx
je 0x417d4e
add ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x417d5c
add ecx, eax
mov dword [esp + 0x1c], ecx
test ebx, ebx
je 0x417d66
add ebx, eax
mov dword [esp + 0x28], ebx
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov edx, edi
sub edx, esi
inc edx
cmp edx, eax
ja 0x417cf2
mov byte [edi], 8
inc edi
mov dword [esp + 0x20], edi
jmp 0x41a02b
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
cmp ecx, edx
je 0x417daf
mov eax, dword [esp + 0x70]
test al, 8
jne 0x417daf
mov esi, eax
push edx
mov eax, ecx
call fcn.00417460
add esp, 4
test al, al
je case.0x417cab.22
mov edi, dword [esp + 0x20]
mov esi, dword [ebp]
mov ecx, dword [ebp + 4]
mov eax, edi
sub eax, esi
inc eax
cmp eax, ecx
jbe 0x417e51
mov ebx, dword [esp + 0x28]
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x417dee
mov dword [ebp + 4], 0x10000
mov ecx, dword [ebp + 4]
push ecx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x417e3e
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
sub eax, esi
add edi, eax
add edx, eax
test ecx, ecx
mov dword [esp + 0x2c], edx
je 0x417e26
add ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x417e34
add ecx, eax
mov dword [esp + 0x1c], ecx
test ebx, ebx
je 0x417e3e
add ebx, eax
mov dword [esp + 0x28], ebx
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov edx, edi
sub edx, esi
inc edx
cmp edx, eax
ja 0x417dca
mov byte [edi], 9
inc edi
mov dword [esp + 0x20], edi
jmp 0x41a02b
test byte [esp + 0x70], 2
jne case.0x417cab.22
mov eax, dword [esp + 0x70]
test ah, 4
je case.0x417cab.14
jmp case.0x417cab.22
mov edi, dword [esp + 0x20]
mov esi, dword [ebp]
mov ecx, dword [ebp + 4]
mov eax, edi
sub eax, esi
mov ebx, edi
inc eax
mov dword [esp + 0x1c], ebx
cmp eax, ecx
jbe 0x417f1f
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x417ebc
mov dword [ebp + 4], 0x10000
mov ecx, dword [ebp + 4]
push ecx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x417f0c
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
sub eax, esi
add edi, eax
add edx, eax
test ecx, ecx
mov dword [esp + 0x2c], edx
je 0x417ef4
add ecx, eax
mov dword [esp + 0x24], ecx
test ebx, ebx
je 0x417efe
add ebx, eax
mov dword [esp + 0x1c], ebx
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x417f0c
add ecx, eax
mov dword [esp + 0x28], ecx
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov edx, edi
sub edx, esi
inc edx
cmp edx, eax
ja 0x417e98
mov byte [edi], 2
inc edi
mov dword [esp + 0x20], edi
jmp 0x41a02b
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
cmp esi, eax
mov byte [esp + 0x74], 0
je 0x41a0a0
mov edx, dword [esp + 0x20]
mov ebx, dword [ebp]
mov ecx, dword [ebp + 4]
mov eax, edx
sub eax, ebx
mov ebx, dword [esp + 0x24]
add eax, 0x22
cmp eax, ecx
jbe 0x417ff5
mov edi, dword [esp + 0x1c]
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x417f86
mov dword [ebp + 4], 0x10000
mov ecx, dword [ebp + 4]
push ecx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x417fd6
mov edx, dword [esp + 0x2c]
sub eax, esi
mov esi, dword [esp + 0x20]
add edx, eax
add esi, eax
mov dword [esp + 0x2c], edx
test ebx, ebx
mov dword [esp + 0x20], esi
je 0x417fc2
add ebx, eax
mov dword [esp + 0x24], ebx
test edi, edi
je 0x417fc8
add edi, eax
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x417fd6
add ecx, eax
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x20]
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
sub edx, esi
add edx, 0x22
cmp edx, eax
ja 0x417f62
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x30]
mov ecx, dword [ebp]
mov eax, edx
sub eax, ecx
mov ecx, dword [ebp + 4]
inc eax
mov edi, edx
cmp eax, ecx
mov dword [esp + 0x1c], edi
jbe 0x4180a3
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x418032
mov dword [ebp + 4], 0x10000
mov ecx, dword [ebp + 4]
push ecx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x418086
mov edx, dword [esp + 0x2c]
sub eax, esi
mov esi, dword [esp + 0x20]
add edx, eax
add esi, eax
mov dword [esp + 0x2c], edx
test ebx, ebx
mov dword [esp + 0x20], esi
je 0x41806e
add ebx, eax
mov dword [esp + 0x24], ebx
test edi, edi
je 0x418078
add edi, eax
mov dword [esp + 0x1c], edi
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x418086
add ecx, eax
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x20]
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
sub edx, esi
inc edx
cmp edx, eax
ja 0x41800e
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x30]
cmp byte [esi], 0x5e
sete al
add al, 3
mov byte [edx], al
mov al, byte [esi]
inc edx
cmp al, 0x5e
mov dword [esp + 0x20], edx
jne 0x4180bd
inc esi
mov dword [esp + 0x30], esi
mov eax, dword [ebp]
mov ecx, edx
sub ecx, eax
mov eax, dword [ebp + 4]
inc ecx
mov dword [esp + 0x50], esi
cmp ecx, eax
jbe 0x418165
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x4180f8
mov dword [ebp + 4], 0x10000
mov edx, dword [ebp + 4]
push edx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x41814c
mov edx, dword [esp + 0x2c]
sub eax, esi
mov esi, dword [esp + 0x20]
add edx, eax
add esi, eax
mov dword [esp + 0x2c], edx
test ebx, ebx
mov dword [esp + 0x20], esi
je 0x418134
add ebx, eax
mov dword [esp + 0x24], ebx
test edi, edi
je 0x41813e
add edi, eax
mov dword [esp + 0x1c], edi
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x41814c
add ecx, eax
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x20]
mov esi, dword [ebp]
mov ecx, dword [ebp + 4]
sub eax, esi
inc eax
cmp eax, ecx
ja 0x4180d4
mov edx, dword [esp + 0x20]
mov byte [edx], 0x20
inc edx
mov ecx, 8
xor eax, eax
mov edi, edx
mov dword [esp + 0x20], edx
rep stosd dword es:[edi], eax
cmp byte [edx - 2], 4
jne 0x41818b
mov eax, dword [esp + 0x70]
test ah, 1
je 0x41818b
or byte [edx + 1], 4
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
cmp eax, ecx
je 0x41a0a0
mov ebx, eax
mov dl, byte [ebx]
inc ebx
test esi, esi
mov byte [esp + 0x34], dl
mov dword [esp + 0x30], ebx
je 0x4181c1
mov edx, dword [esp + 0x34]
and edx, 0xff
mov dl, byte [edx + esi]
mov byte [esp + 0x34], dl
test byte [esp + 0x70], 1
je 0x418224
cmp dl, 0x5c
jne 0x418224
cmp ebx, dword [esp + 0x38]
je 0x41a0ad
mov al, byte [ebx]
inc ebx
test esi, esi
mov byte [esp + 0x40], al
mov dword [esp + 0x30], ebx
je 0x4181f7
mov ecx, dword [esp + 0x40]
and ecx, 0xff
mov dl, byte [ecx + esi]
mov byte [esp + 0x40], dl
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
and ecx, 0xff
mov eax, ecx
shr eax, 3
add eax, edx
and ecx, 0x80000007
jns 0x418219
dec ecx
or ecx, 0xfffffff8
inc ecx
mov dl, 1
shl dl, cl
or byte [eax], dl
jmp 0x41818f
cmp dl, 0x5d
jne 0x418236
mov eax, dword [esp + 0x50]
inc eax
cmp ebx, eax
jne 0x4188ef
mov al, byte [esp + 0x74]
test al, al
je 0x418255
cmp dl, 0x2d
jne 0x418289
cmp byte [ebx], 0x5d
je 0x41825a
pop ebx
pop edi
pop esi
mov eax, 0xb
pop ebp
add esp, 0x58
ret
cmp dl, 0x2d
jne 0x418289
mov eax, dword [esp + 0x6c]
lea ecx, [ebx - 2]
cmp ecx, eax
jb 0x41826b
cmp byte [ebx - 2], 0x5b
je 0x418289
lea ecx, [ebx - 3]
cmp ecx, eax
jb 0x41827e
cmp byte [ebx - 3], 0x5b
jne 0x41827e
cmp byte [ebx - 2], 0x5e
je 0x418289
cmp byte [ebx], 0x5d
je 0x418289
mov ecx, dword [esp + 0x38]
jmp 0x4182a9
mov cl, byte [ebx]
cmp cl, 0x2d
jne 0x4182d2
cmp byte [ebx + 1], 0x5d
lea eax, [ebx + 1]
je 0x4182d2
mov ecx, dword [esp + 0x38]
cmp ebx, ecx
je 0x41a086
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x70]
push edx
push eax
push ecx
mov edx, esi
lea ecx, [esp + 0x3c]
call fcn.004174d0
add esp, 0xc
test eax, eax
je 0x41818f
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x58
ret
test byte [esp + 0x70], 4
je 0x4188bd
cmp dl, 0x5b
jne 0x4188bd
cmp cl, 0x3a
jne 0x4188bd
mov edx, dword [esp + 0x38]
cmp ebx, edx
je 0x41a086
inc ebx
xor cl, cl
cmp ebx, edx
mov byte [esp + 0x40], cl
je 0x41a0a0
mov esi, dword [esp + 0x3c]
mov al, byte [ebx]
inc ebx
test esi, esi
mov byte [esp + 0x34], al
je 0x418325
mov eax, dword [esp + 0x34]
and eax, 0xff
mov al, byte [eax + esi]
cmp al, 0x3a
je 0x41834c
cmp al, 0x5d
je 0x41834c
cmp ebx, edx
je 0x41834c
cmp cl, 6
je 0x41834c
mov edi, dword [esp + 0x40]
and edi, 0xff
inc cl
mov byte [esp + 0x40], cl
mov byte [esp + edi + 0x54], al
jmp 0x41830e
mov edi, dword [esp + 0x40]
mov dword [esp + 0x30], ebx
and edi, 0xff
cmp al, 0x3a
mov byte [esp + edi + 0x54], 0
jne 0x418886
cmp byte [ebx], 0x5d
jne 0x418886
mov edi, str.alnum
lea esi, [esp + 0x54]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
sete byte [esp + 0x74]
mov edi, str.alpha
lea esi, [esp + 0x54]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
sete byte [esp + 0x12]
mov edi, str.blank
lea esi, [esp + 0x54]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
sete byte [esp + 0x11]
mov edi, str.cntrl
lea esi, [esp + 0x54]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
sete byte [esp + 0x13]
mov edi, str.digit
lea esi, [esp + 0x54]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
sete byte [esp + 0x14]
mov edi, str.graph
lea esi, [esp + 0x54]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
sete byte [esp + 0x15]
mov edi, str.lower
lea esi, [esp + 0x54]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
sete byte [esp + 0x16]
mov edi, str.print
lea esi, [esp + 0x54]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
sete byte [esp + 0x17]
mov edi, str.punct
lea esi, [esp + 0x54]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
sete byte [esp + 0x18]
mov edi, str.space
lea esi, [esp + 0x54]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
sete byte [esp + 0x19]
mov edi, str.upper
lea esi, [esp + 0x54]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
sete byte [esp + 0x1a]
mov edi, str.xdigit
lea esi, [esp + 0x54]
mov ecx, 7
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
sete byte [esp + 0x1b]
mov edi, str.alpha
lea esi, [esp + 0x54]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x41858c
mov edi, str.upper
lea esi, [esp + 0x54]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x41858c
mov edi, str.lower
lea esi, [esp + 0x54]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x41858c
mov edi, str.digit
lea esi, [esp + 0x54]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x41858c
mov edi, str.alnum
lea esi, [esp + 0x54]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x41858c
mov edi, str.xdigit
lea esi, [esp + 0x54]
mov ecx, 7
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x41858c
mov edi, str.space
lea esi, [esp + 0x54]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x41858c
mov edi, str.print
lea esi, [esp + 0x54]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x41858c
mov edi, str.punct
lea esi, [esp + 0x54]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x41858c
mov edi, str.graph
lea esi, [esp + 0x54]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x41858c
mov edi, str.cntrl
lea esi, [esp + 0x54]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x41858c
mov edi, str.blank
lea esi, [esp + 0x54]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x41a0ba
cmp ebx, edx
je 0x41a086
inc ebx
cmp ebx, edx
mov dword [esp + 0x30], ebx
je 0x41a0a0
mov edi, dword [esp + 0x20]
xor esi, esi
mov al, byte [esp + 0x74]
test al, al
je 0x4185e7
cmp esi, 0x80
jae 0x4185e7
cmp dword [0x42fe18], 1
jle 0x4185d0
push 0x107
push esi
call fcn.0041c7e4
add esp, 8
jmp 0x4185df
mov ecx, dword [str.________________________________H]
mov ax, word [ecx + esi*2]
and eax, 0x107
test eax, eax
jne 0x41884d
mov al, byte [esp + 0x12]
test al, al
je 0x418627
cmp esi, 0x80
jae 0x418627
cmp dword [0x42fe18], 1
jle 0x418610
push 0x103
push esi
call fcn.0041c7e4
add esp, 8
jmp 0x41861f
mov edx, dword [str.________________________________H]
mov ax, word [edx + esi*2]
and eax, 0x103
test eax, eax
jne 0x41884d
mov al, byte [esp + 0x11]
test al, al
je 0x418641
cmp esi, 0x20
je 0x41884d
cmp esi, 9
je 0x41884d
mov al, byte [esp + 0x13]
test al, al
je 0x41867a
cmp esi, 0x80
jae 0x41867a
cmp dword [0x42fe18], 1
jle 0x418667
push 0x20
push esi
call fcn.0041c7e4
add esp, 8
jmp 0x418672
mov eax, dword [str.________________________________H]
mov al, byte [eax + esi*2]
and eax, 0x20
test eax, eax
jne 0x41884d
mov al, byte [esp + 0x14]
test al, al
je 0x4186b4
cmp esi, 0x80
jae 0x4186b4
cmp dword [0x42fe18], 1
jle 0x4186a0
push 4
push esi
call fcn.0041c7e4
add esp, 8
jmp 0x4186ac
mov ecx, dword [str.________________________________H]
mov al, byte [ecx + esi*2]
and eax, 4
test eax, eax
jne 0x41884d
mov al, byte [esp + 0x15]
test al, al
je 0x4186f4
cmp esi, 0x80
jae 0x4186f4
cmp dword [0x42fe18], 1
jle 0x4186dd
push 0x117
push esi
call fcn.0041c7e4
add esp, 8
jmp 0x4186ec
mov edx, dword [str.________________________________H]
mov ax, word [edx + esi*2]
and eax, 0x117
test eax, eax
jne 0x41884d
mov al, byte [esp + 0x16]
test al, al
je 0x41872d
cmp esi, 0x80
jae 0x41872d
cmp dword [0x42fe18], 1
jle 0x41871a
push 2
push esi
call fcn.0041c7e4
add esp, 8
jmp 0x418725
mov eax, dword [str.________________________________H]
mov al, byte [eax + esi*2]
and eax, 2
test eax, eax
jne 0x41884d
mov al, byte [esp + 0x17]
test al, al
je 0x41876d
cmp esi, 0x80
jae 0x41876d
cmp dword [0x42fe18], 1
jle 0x418756
push 0x157
push esi
call fcn.0041c7e4
add esp, 8
jmp 0x418765
mov ecx, dword [str.________________________________H]
mov ax, word [ecx + esi*2]
and eax, 0x157
test eax, eax
jne 0x41884d
mov al, byte [esp + 0x18]
test al, al
je 0x4187a7
cmp esi, 0x80
jae 0x4187a7
cmp dword [0x42fe18], 1
jle 0x418793
push 0x10
push esi
call fcn.0041c7e4
add esp, 8
jmp 0x41879f
mov edx, dword [str.________________________________H]
mov al, byte [edx + esi*2]
and eax, 0x10
test eax, eax
jne 0x41884d
mov al, byte [esp + 0x19]
test al, al
je 0x4187dc
cmp esi, 0x80
jae 0x4187dc
cmp dword [0x42fe18], 1
jle 0x4187cd
push 8
push esi
call fcn.0041c7e4
add esp, 8
jmp 0x4187d8
mov eax, dword [str.________________________________H]
mov al, byte [eax + esi*2]
and eax, 8
test eax, eax
jne 0x41884d
mov al, byte [esp + 0x1a]
test al, al
je 0x418812
cmp esi, 0x80
jae 0x418812
cmp dword [0x42fe18], 1
jle 0x418802
push 1
push esi
call fcn.0041c7e4
add esp, 8
jmp 0x41880e
mov ecx, dword [str.________________________________H]
mov al, byte [ecx + esi*2]
and eax, 1
test eax, eax
jne 0x41884d
mov al, byte [esp + 0x1b]
test al, al
je 0x41886f
cmp esi, 0x80
jae 0x41886f
cmp dword [0x42fe18], 1
jle 0x41883b
push 0x80
push esi
call fcn.0041c7e4
add esp, 8
jmp 0x418849
mov edx, dword [str.________________________________H]
mov al, byte [edx + esi*2]
and eax, 0x80
test eax, eax
je 0x41886f
mov ecx, esi
and ecx, 0xff
mov eax, ecx
shr eax, 3
add eax, edi
and ecx, 0x80000007
jns 0x418869
dec ecx
or ecx, 0xfffffff8
inc ecx
mov dl, 1
shl dl, cl
or byte [eax], dl
inc esi
cmp esi, 0x100
jl 0x4185a7
mov byte [esp + 0x74], 1
jmp 0x41818b
inc cl
mov byte [esp + 0x40], cl
je 0x41889d
mov eax, dword [esp + 0x40]
and eax, 0xff
sub ebx, eax
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0x20]
mov byte [esp + 0x74], 0
mov dl, byte [eax + 0xb]
mov cl, byte [eax + 7]
or dl, 8
or cl, 4
mov byte [eax + 0xb], dl
mov byte [eax + 7], cl
jmp 0x41818f
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
and ecx, 0xff
mov byte [esp + 0x74], 0
mov edx, ecx
shr edx, 3
add eax, edx
and ecx, 0x80000007
jns 0x4188e4
dec ecx
or ecx, 0xfffffff8
inc ecx
mov dl, 1
shl dl, cl
or byte [eax], dl
jmp 0x41818b
mov eax, dword [esp + 0x20]
mov cl, byte [eax - 1]
test cl, cl
jbe 0x418918
mov ecx, eax
mov al, byte [ecx - 1]
mov edx, eax
and edx, 0xff
mov bl, byte [edx + ecx - 1]
test bl, bl
jne 0x418918
dec al
test al, al
mov byte [ecx - 1], al
ja 0x4188fc
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov cl, byte [eax - 1]
add eax, ecx
mov dword [esp + 0x20], eax
jmp 0x41a027
mov eax, dword [esp + 0x70]
test ah, 0x20
jne 0x418aff
jmp case.0x417cab.22
mov eax, dword [esp + 0x70]
test ah, 0x20
je case.0x417cab.22
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
test ebx, ebx
je 0x418a10
mov esi, dword [ebp]
mov ecx, dword [ebp + 4]
mov eax, edi
sub eax, esi
inc eax
cmp eax, ecx
jbe 0x4189f5
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x418992
mov dword [ebp + 4], 0x10000
mov ecx, dword [ebp + 4]
push ecx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x4189e2
mov edx, dword [esp + 0x2c]
sub eax, esi
add edi, eax
add edx, eax
test ebx, ebx
mov dword [esp + 0x2c], edx
je 0x4189c6
add ebx, eax
mov dword [esp + 0x24], ebx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x4189d4
add ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4189e2
add ecx, eax
mov dword [esp + 0x28], ecx
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov edx, edi
sub edx, esi
inc edx
cmp edx, eax
ja 0x41896e
mov byte [edi], 0x13
inc edi
mov eax, edi
mov dword [esp + 0x20], edi
sub eax, ebx
mov byte [ebx], 0xd
sub eax, 4
mov byte [ebx + 1], al
sar eax, 8
mov byte [ebx + 2], al
mov eax, dword [esp + 0x64]
xor edx, edx
cmp eax, edx
jne 0x418c82
test dword [esp + 0x70], 0x20000
jne case.0x417cab.22
pop ebx
pop edi
pop esi
mov eax, 0x10
pop ebp
add esp, 0x58
ret
mov eax, dword [esp + 0x70]
test ah, 8
jne 0x418da3
jmp case.0x417cab.22
mov eax, dword [esp + 0x70]
test ah, ah
js 0x418da3
jmp case.0x417cab.22
mov eax, dword [esp + 0x70]
test ah, 2
je case.0x417cab.22
and eax, 0x1000
mov dword [esp + 0x4c], eax
je case.0x417cab.22
mov esi, eax
mov eax, dword [esp + 0x30]
lea ecx, [eax - 1]
or edx, 0xffffffff
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x38]
cmp eax, ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x74], edx
jne 0x418f76
test esi, esi
jne 0x41937f
pop ebx
pop edi
pop esi
mov eax, 9
pop ebp
add esp, 0x58
ret
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
cmp eax, ecx
je 0x41a0ad
mov dl, byte [eax]
inc eax
mov byte [esp + 0x34], dl
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x34]
mov eax, ecx
and eax, 0xff
add eax, 0xffffffd9
cmp eax, 0x55
ja case.0x418aeb.53
xor edx, edx
mov dl, byte [eax + 0x41a1f4]
jmp dword [edx*4 + 0x41a1b8]
mov eax, dword [esp + 0x70]
test ah, 0x20
jne case.0x418aeb.53
mov edx, dword [ebp + 0x18]
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
inc edx
inc ecx
cmp edi, esi
mov dword [ebp + 0x18], edx
mov dword [esp + 0x44], ecx
jne 0x418b41
mov ecx, dword [esp + 0x5c]
lea eax, [esi + esi*4]
shl eax, 3
push eax
push ecx
call fcn.0041e521
add esp, 8
mov dword [esp + 0x5c], eax
test eax, eax
je 0x417c33
add esi, esi
mov dword [esp + 0x60], esi
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
lea edx, [edi + edi*4]
lea eax, [eax + edx*4]
mov edx, dword [ebp]
sub ecx, edx
test ebx, ebx
mov dword [eax], ecx
je 0x418b68
mov esi, dword [ebp]
mov ecx, ebx
sub ecx, esi
inc ecx
jmp 0x418b6a
xor ecx, ecx
mov edi, dword [esp + 0x20]
mov dword [eax + 4], ecx
mov esi, dword [ebp]
mov ecx, edi
sub ecx, esi
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x44]
cmp ecx, 0xff
mov dword [eax + 0x10], ecx
ja 0x418c36
mov esi, dword [ebp]
mov edx, edi
sub edx, esi
add edx, 2
mov dword [eax + 8], edx
mov edx, dword [ebp]
mov eax, edi
sub eax, edx
mov edx, dword [ebp + 4]
add eax, 3
cmp eax, edx
jbe 0x418c27
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x418bd0
mov dword [ebp + 4], 0x10000
mov ecx, dword [ebp + 4]
push ecx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x418c12
sub eax, esi
add edi, eax
test ebx, ebx
je 0x418bf6
add ebx, eax
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x418c04
add ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x418c12
add ecx, eax
mov dword [esp + 0x28], ecx
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov edx, edi
sub edx, esi
add edx, 3
cmp edx, eax
ja 0x418bac
mov ecx, dword [esp + 0x44]
mov byte [edi], 5
inc edi
mov byte [edi], cl
inc edi
mov byte [edi], 0
inc edi
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x64]
mov dword [esp + 0x2c], edi
inc eax
mov dword [esp + 0x64], eax
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], eax
jmp 0x41a02b
mov eax, dword [esp + 0x70]
test ah, 0x20
jne case.0x418aeb.53
mov eax, dword [esp + 0x64]
test eax, eax
jne 0x41894b
test dword [esp + 0x70], 0x20000
je 0x418a2c
jmp case.0x418aeb.53
mov ecx, dword [esp + 0x5c]
dec eax
mov esi, dword [ebp]
mov dword [esp + 0x64], eax
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [eax]
add ecx, esi
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 4]
cmp ecx, edx
je 0x418cad
lea ecx, [ecx + esi - 1]
mov dword [esp + 0x24], ecx
jmp 0x418cb1
mov dword [esp + 0x24], edx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x28], edx
add ecx, esi
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 0x10]
cmp ecx, 0xff
mov dword [esp + 0x74], ecx
ja 0x41a02b
mov bl, byte [esp + 0x44]
mov edx, dword [eax + 8]
mov edi, dword [esp + 0x20]
sub bl, cl
mov byte [esi + edx], bl
mov esi, dword [ebp]
mov ecx, dword [ebp + 4]
mov eax, edi
sub eax, esi
add eax, 3
cmp eax, ecx
jbe 0x418d83
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x418d1a
mov dword [ebp + 4], 0x10000
mov ecx, dword [ebp + 4]
push ecx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x418d6e
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
sub eax, esi
add edi, eax
add edx, eax
test ecx, ecx
mov dword [esp + 0x2c], edx
je 0x418d52
add ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x418d60
add ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x418d6e
add ecx, eax
mov dword [esp + 0x28], ecx
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov edx, edi
sub edx, esi
add edx, 3
cmp edx, eax
ja 0x418cf6
mov al, byte [esp + 0x74]
mov byte [edi], 6
inc edi
mov byte [edi], al
inc edi
mov byte [edi], bl
inc edi
jmp 0x41a023
mov eax, dword [esp + 0x70]
test ah, 0x84
jne case.0x418aeb.53
mov eax, dword [esp + 0x70]
test ah, 4
jne case.0x417cab.22
mov edi, dword [esp + 0x20]
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x24]
mov ecx, edi
sub ecx, esi
add ecx, 3
cmp ecx, eax
jbe 0x418e52
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x418df1
mov dword [ebp + 4], 0x10000
mov edx, dword [ebp + 4]
push edx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x418e3d
mov edx, dword [esp + 0x2c]
sub eax, esi
add edi, eax
add edx, eax
test ebx, ebx
mov dword [esp + 0x2c], edx
je 0x418e21
add ebx, eax
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x418e2f
add ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x418e3d
add ecx, eax
mov dword [esp + 0x28], ecx
mov esi, dword [ebp]
mov ecx, dword [ebp + 4]
mov eax, edi
sub eax, esi
add eax, 3
cmp eax, ecx
ja 0x418dcd
mov ecx, dword [esp + 0x2c]
mov edx, edi
sub edx, ecx
push 0xe
add edx, 3
mov eax, edi
call fcn.004173b0
add esp, 4
add edi, 3
test ebx, ebx
mov dword [esp + 0x28], 0
je 0x418e8b
mov eax, edi
mov byte [ebx], 0xd
sub eax, ebx
sub eax, 3
mov byte [ebx + 1], al
sar eax, 8
mov byte [ebx + 2], al
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov ecx, edi
mov ebx, edi
sub ecx, esi
mov dword [esp + 0x24], ebx
add ecx, 3
cmp ecx, eax
jbe 0x418f1d
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x418ec6
mov dword [ebp + 4], 0x10000
mov edx, dword [ebp + 4]
push edx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x418f0c
sub eax, esi
add edi, eax
test ebx, ebx
je 0x418ef0
add ebx, eax
mov dword [esp + 0x24], ebx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x418efe
add ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x418f0c
add ecx, eax
mov dword [esp + 0x28], ecx
mov esi, dword [ebp]
mov ecx, dword [ebp + 4]
mov eax, edi
sub eax, esi
add eax, 3
cmp eax, ecx
ja 0x418ea2
add edi, 3
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], edi
mov dword [esp + 0x2c], edi
jmp 0x41a02b
mov eax, dword [esp + 0x70]
test ah, 2
je case.0x418aeb.53
mov esi, eax
and esi, 0x1000
mov dword [esp + 0x4c], esi
jne case.0x418aeb.53
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x6c]
lea edx, [eax - 2]
cmp edx, edi
jne 0x418a7e
cmp eax, dword [esp + 0x38]
je case.0x418aeb.53
jmp 0x418a7a
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x3c]
mov bl, byte [edi]
inc edi
test ecx, ecx
mov byte [esp + 0x34], bl
mov dword [esp + 0x30], edi
je 0x418f9d
mov eax, dword [esp + 0x34]
and eax, 0xff
mov bl, byte [eax + ecx]
mov byte [esp + 0x34], bl
cmp bl, 0x80
jae 0x41901b
mov esi, dword [esp + 0x34]
mov eax, dword [0x42fe18]
and esi, 0xff
cmp eax, 1
jle 0x418fcb
push 4
push esi
call fcn.0041c7e4
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x7c]
add esp, 8
jmp 0x418fd6
mov eax, dword [str.________________________________H]
mov al, byte [eax + esi*2]
and eax, 4
test eax, eax
je 0x419017
mov eax, dword [esp + 0x48]
test eax, eax
jge 0x418fe4
xor eax, eax
lea eax, [eax + eax*4]
lea eax, [esi + eax*2 - 0x30]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x38]
cmp edi, eax
je 0x419017
mov bl, byte [edi]
inc edi
test ecx, ecx
mov byte [esp + 0x34], bl
je 0x419012
mov eax, dword [esp + 0x34]
and eax, 0xff
mov bl, byte [eax + ecx]
mov byte [esp + 0x34], bl
cmp bl, 0x80
jb 0x418fa2
mov dword [esp + 0x30], edi
cmp bl, 0x2c
jne 0x4190d2
cmp edi, dword [esp + 0x38]
je 0x4190cb
mov bl, byte [edi]
inc edi
test ecx, ecx
mov byte [esp + 0x34], bl
mov dword [esp + 0x30], edi
je 0x41904d
mov eax, dword [esp + 0x34]
and eax, 0xff
mov bl, byte [eax + ecx]
mov byte [esp + 0x34], bl
cmp bl, 0x80
jae 0x4190cb
mov esi, dword [esp + 0x34]
mov eax, dword [0x42fe18]
and esi, 0xff
cmp eax, 1
jle 0x41907b
push 4
push esi
call fcn.0041c7e4
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x7c]
add esp, 8
jmp 0x419086
mov eax, dword [str.________________________________H]
mov al, byte [eax + esi*2]
and eax, 4
test eax, eax
je 0x4190c3
test edx, edx
jge 0x419090
xor edx, edx
mov eax, dword [esp + 0x38]
lea edx, [edx + edx*4]
cmp edi, eax
lea edx, [esi + edx*2 - 0x30]
mov dword [esp + 0x74], edx
je 0x4190c3
mov bl, byte [edi]
inc edi
test ecx, ecx
mov byte [esp + 0x34], bl
je 0x4190be
mov eax, dword [esp + 0x34]
and eax, 0xff
mov bl, byte [eax + ecx]
mov byte [esp + 0x34], bl
cmp bl, 0x80
jb 0x419052
test edx, edx
mov dword [esp + 0x30], edi
jge 0x4190da
mov edx, 0x7fff
jmp 0x4190d6
mov edx, dword [esp + 0x48]
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x48]
test eax, eax
jl 0x419373
cmp edx, 0x7fff
jg 0x419373
cmp eax, edx
jg 0x419373
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x419131
cmp bl, 0x5c
jne 0x418aa4
cmp edi, dword [esp + 0x38]
je 0x41a086
mov bl, byte [edi]
inc edi
test ecx, ecx
mov byte [esp + 0x34], bl
mov dword [esp + 0x30], edi
je 0x419131
mov esi, dword [esp + 0x34]
and esi, 0xff
mov bl, byte [esi + ecx]
cmp bl, 0x7d
jne 0x419377
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x419160
mov al, byte [esp + 0x70]
test al, 0x20
jne 0x41a0d4
test al, 0x10
je 0x41937f
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x1c], ebx
jmp 0x419164
mov ebx, dword [esp + 0x20]
mov esi, dword [ebp]
test edx, edx
jne 0x419236
mov eax, dword [ebp + 4]
mov ecx, ebx
sub ecx, esi
add ecx, 3
cmp ecx, eax
jbe 0x41920e
mov edi, dword [esp + 0x24]
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x4191a9
mov dword [ebp + 4], 0x10000
mov edx, dword [ebp + 4]
push edx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x4191f9
mov edx, dword [esp + 0x2c]
sub eax, esi
add ebx, eax
add edx, eax
test edi, edi
mov dword [esp + 0x2c], edx
je 0x4191dd
add edi, eax
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x4191eb
add ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4191f9
add ecx, eax
mov dword [esp + 0x28], ecx
mov esi, dword [ebp]
mov ecx, dword [ebp + 4]
mov eax, ebx
sub eax, esi
add eax, 3
cmp eax, ecx
ja 0x419185
mov ecx, dword [esp + 0x1c]
mov edx, ebx
sub edx, ecx
push 0xc
mov eax, ebx
call fcn.004173b0
add esp, 4
add ebx, 3
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], 0
jmp 0x41a027
xor ecx, ecx
cmp edx, 1
setg cl
mov edi, ecx
mov ecx, dword [ebp + 4]
lea eax, [edi + edi*4 + 5]
add eax, eax
mov dword [esp + 0x50], eax
sub eax, esi
add eax, ebx
cmp eax, ecx
jbe 0x4192e7
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x41927d
mov dword [ebp + 4], 0x10000
mov edx, dword [ebp + 4]
push edx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x4192d1
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
sub eax, esi
add ebx, eax
add edx, eax
test ecx, ecx
mov dword [esp + 0x2c], edx
je 0x4192b5
add ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x4192c3
add ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4192d1
add ecx, eax
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x50]
mov esi, dword [ebp]
mov ecx, dword [ebp + 4]
sub eax, esi
add eax, ebx
cmp eax, ecx
ja 0x419259
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x48]
lea ecx, [edi + edi*4]
sub ecx, eax
lea edx, [ecx + ebx + 2]
mov ecx, ebx
push edx
push 0x14
mov edx, esi
call fcn.004173e0
add ebx, 5
push 5
push 0x16
mov ecx, ebx
mov edx, esi
call fcn.004173e0
mov edx, dword [esp + 0x84]
add esp, 0x10
add ebx, 5
cmp edx, 1
mov dword [esp + 0x20], ebx
jle 0x419366
mov esi, eax
sub eax, ebx
add eax, 2
dec edx
mov byte [ebx + 1], al
mov byte [ebx], 0x15
sar eax, 8
mov byte [ebx + 2], al
mov eax, edx
sar eax, 8
mov byte [ebx + 3], dl
mov byte [ebx + 4], al
add ebx, 5
mov eax, esi
mov ecx, ebx
sub ecx, esi
push ecx
push 0x16
mov ecx, ebx
call fcn.004173e0
add esp, 8
add ebx, 5
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], 0
jmp 0x41a027
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x41a0c7
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x38]
cmp edx, eax
je 0x41a086
mov ecx, edx
mov al, byte [ecx]
inc ecx
mov byte [esp + 0x34], al
mov eax, dword [esp + 0x3c]
test eax, eax
mov dword [esp + 0x30], ecx
je 0x4193b5
mov edx, dword [esp + 0x34]
and edx, 0xff
mov al, byte [edx + eax]
mov byte [esp + 0x34], al
mov eax, dword [esp + 0x4c]
test eax, eax
jne case.0x417cab.22
cmp ecx, dword [esp + 0x6c]
jbe case.0x417cab.22
cmp byte [ecx - 1], 0x5c
jne case.0x417cab.22
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x419e50
and ecx, 0xff
mov cl, byte [ecx + eax]
mov byte [esp + 0x34], cl
jmp case.0x417cab.22
mov edi, dword [esp + 0x20]
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov ecx, edi
sub ecx, esi
mov ebx, edi
inc ecx
mov dword [esp + 0x1c], ebx
cmp ecx, eax
jbe 0x41949b
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x419438
mov dword [ebp + 4], 0x10000
mov edx, dword [ebp + 4]
push edx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x419488
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
sub eax, esi
add edi, eax
add edx, eax
test ecx, ecx
mov dword [esp + 0x2c], edx
je 0x419470
add ecx, eax
mov dword [esp + 0x24], ecx
test ebx, ebx
je 0x41947a
add ebx, eax
mov dword [esp + 0x1c], ebx
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x419488
add ecx, eax
mov dword [esp + 0x28], ecx
mov esi, dword [ebp]
mov ecx, dword [ebp + 4]
mov eax, edi
sub eax, esi
inc eax
cmp eax, ecx
ja 0x419414
mov byte [edi], 0x17
inc edi
mov dword [esp + 0x20], edi
jmp 0x41a02b
mov edi, dword [esp + 0x20]
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov ecx, edi
sub ecx, esi
mov ebx, edi
inc ecx
mov dword [esp + 0x1c], ebx
cmp ecx, eax
jbe 0x41954c
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x4194e9
mov dword [ebp + 4], 0x10000
mov edx, dword [ebp + 4]
push edx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x419539
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
sub eax, esi
add edi, eax
add edx, eax
test ecx, ecx
mov dword [esp + 0x2c], edx
je 0x419521
add ecx, eax
mov dword [esp + 0x24], ecx
test ebx, ebx
je 0x41952b
add ebx, eax
mov dword [esp + 0x1c], ebx
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x419539
add ecx, eax
mov dword [esp + 0x28], ecx
mov esi, dword [ebp]
mov ecx, dword [ebp + 4]
mov eax, edi
sub eax, esi
inc eax
cmp eax, ecx
ja 0x4194c5
mov byte [edi], 0x18
inc edi
mov dword [esp + 0x20], edi
jmp 0x41a02b
mov edi, dword [esp + 0x20]
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov ecx, edi
sub ecx, esi
inc ecx
cmp ecx, eax
jbe 0x4195fb
mov ebx, dword [esp + 0x28]
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x419598
mov dword [ebp + 4], 0x10000
mov edx, dword [ebp + 4]
push edx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x4195e8
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
sub eax, esi
add edi, eax
add edx, eax
test ecx, ecx
mov dword [esp + 0x2c], edx
je 0x4195d0
add ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x4195de
add ecx, eax
mov dword [esp + 0x1c], ecx
test ebx, ebx
je 0x4195e8
add ebx, eax
mov dword [esp + 0x28], ebx
mov esi, dword [ebp]
mov ecx, dword [ebp + 4]
mov eax, edi
sub eax, esi
inc eax
cmp eax, ecx
ja 0x419574
mov byte [edi], 0x19
inc edi
mov dword [esp + 0x20], edi
jmp 0x41a02b
mov edi, dword [esp + 0x20]
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov ecx, edi
sub ecx, esi
inc ecx
cmp ecx, eax
jbe 0x4196aa
mov ebx, dword [esp + 0x28]
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x419647
mov dword [ebp + 4], 0x10000
mov edx, dword [ebp + 4]
push edx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x419697
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
sub eax, esi
add edi, eax
add edx, eax
test ecx, ecx
mov dword [esp + 0x2c], edx
je 0x41967f
add ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x41968d
add ecx, eax
mov dword [esp + 0x1c], ecx
test ebx, ebx
je 0x419697
add ebx, eax
mov dword [esp + 0x28], ebx
mov esi, dword [ebp]
mov ecx, dword [ebp + 4]
mov eax, edi
sub eax, esi
inc eax
cmp eax, ecx
ja 0x419623
mov byte [edi], 0x1a
inc edi
mov dword [esp + 0x20], edi
jmp 0x41a02b
mov edi, dword [esp + 0x20]
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov ecx, edi
sub ecx, esi
inc ecx
cmp ecx, eax
jbe 0x419759
mov ebx, dword [esp + 0x28]
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x4196f6
mov dword [ebp + 4], 0x10000
mov edx, dword [ebp + 4]
push edx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x419746
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
sub eax, esi
add edi, eax
add edx, eax
test ecx, ecx
mov dword [esp + 0x2c], edx
je 0x41972e
add ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x41973c
add ecx, eax
mov dword [esp + 0x1c], ecx
test ebx, ebx
je 0x419746
add ebx, eax
mov dword [esp + 0x28], ebx
mov esi, dword [ebp]
mov ecx, dword [ebp + 4]
mov eax, edi
sub eax, esi
inc eax
cmp eax, ecx
ja 0x4196d2
mov byte [edi], 0x1b
inc edi
mov dword [esp + 0x20], edi
jmp 0x41a02b
mov edi, dword [esp + 0x20]
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov ecx, edi
sub ecx, esi
inc ecx
cmp ecx, eax
jbe 0x419808
mov ebx, dword [esp + 0x28]
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x4197a5
mov dword [ebp + 4], 0x10000
mov edx, dword [ebp + 4]
push edx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x4197f5
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
sub eax, esi
add edi, eax
add edx, eax
test ecx, ecx
mov dword [esp + 0x2c], edx
je 0x4197dd
add ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x4197eb
add ecx, eax
mov dword [esp + 0x1c], ecx
test ebx, ebx
je 0x4197f5
add ebx, eax
mov dword [esp + 0x28], ebx
mov esi, dword [ebp]
mov ecx, dword [ebp + 4]
mov eax, edi
sub eax, esi
inc eax
cmp eax, ecx
ja 0x419781
mov byte [edi], 0x1c
inc edi
mov dword [esp + 0x20], edi
jmp 0x41a02b
mov edi, dword [esp + 0x20]
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov ecx, edi
sub ecx, esi
inc ecx
cmp ecx, eax
jbe 0x4198b7
mov ebx, dword [esp + 0x28]
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x419854
mov dword [ebp + 4], 0x10000
mov edx, dword [ebp + 4]
push edx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x4198a4
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
sub eax, esi
add edi, eax
add edx, eax
test ecx, ecx
mov dword [esp + 0x2c], edx
je 0x41988c
add ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x41989a
add ecx, eax
mov dword [esp + 0x1c], ecx
test ebx, ebx
je 0x4198a4
add ebx, eax
mov dword [esp + 0x28], ebx
mov esi, dword [ebp]
mov ecx, dword [ebp + 4]
mov eax, edi
sub eax, esi
inc eax
cmp eax, ecx
ja 0x419830
mov byte [edi], 0xa
inc edi
mov dword [esp + 0x20], edi
jmp 0x41a02b
mov edi, dword [esp + 0x20]
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov ecx, edi
sub ecx, esi
inc ecx
cmp ecx, eax
jbe 0x419966
mov ebx, dword [esp + 0x28]
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x419903
mov dword [ebp + 4], 0x10000
mov edx, dword [ebp + 4]
push edx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x419953
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
sub eax, esi
add edi, eax
add edx, eax
test ecx, ecx
mov dword [esp + 0x2c], edx
je 0x41993b
add ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x419949
add ecx, eax
mov dword [esp + 0x1c], ecx
test ebx, ebx
je 0x419953
add ebx, eax
mov dword [esp + 0x28], ebx
mov esi, dword [ebp]
mov ecx, dword [ebp + 4]
mov eax, edi
sub eax, esi
inc eax
cmp eax, ecx
ja 0x4198df
mov byte [edi], 0xb
inc edi
mov dword [esp + 0x20], edi
jmp 0x41a02b
mov eax, dword [esp + 0x70]
test ah, 0x40
jne case.0x417cab.22
mov bl, byte [esp + 0x34]
mov eax, dword [esp + 0x44]
sub bl, 0x30
mov byte [esp + 0x40], bl
mov edx, dword [esp + 0x40]
and edx, 0xff
cmp edx, eax
ja 0x41a0e1
mov eax, dword [esp + 0x64]
dec eax
test eax, eax
jl 0x4199c5
mov esi, dword [esp + 0x5c]
lea ecx, [eax + eax*4]
lea ecx, [esi + ecx*4 + 0x10]
cmp dword [ecx], edx
je case.0x417cab.22
dec eax
sub ecx, 0x14
test eax, eax
jge 0x4199b5
mov edi, dword [esp + 0x20]
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov edx, edi
sub edx, esi
mov dword [esp + 0x1c], edi
add edx, 2
cmp edx, eax
jbe 0x419a73
mov ebx, dword [esp + 0x24]
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x419a0a
mov dword [ebp + 4], 0x10000
mov eax, dword [ebp + 4]
push eax
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x419a5a
mov edx, dword [esp + 0x2c]
sub eax, esi
add edi, eax
add edx, eax
test ebx, ebx
mov dword [esp + 0x2c], edx
je 0x419a3e
add ebx, eax
mov dword [esp + 0x24], ebx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x419a4c
add ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x419a5a
add ecx, eax
mov dword [esp + 0x28], ecx
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov ecx, edi
sub ecx, esi
add ecx, 2
cmp ecx, eax
ja 0x4199e6
mov bl, byte [esp + 0x40]
mov byte [edi], 7
inc edi
mov byte [edi], bl
inc edi
mov dword [esp + 0x20], edi
jmp 0x41a02b
test byte [esp + 0x70], 2
je case.0x418aeb.53
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x419aaa
mov al, byte [esp + 0x70]
test al, 0x20
jne 0x41a0d4
test al, 0x10
je case.0x417cab.22
mov al, byte [esp + 0x34]
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
cmp al, 0x2b
mov byte [esp + 0x12], 0
setne byte [esp + 0x74]
cmp al, 0x3f
setne byte [esp + 0x11]
cmp ebx, edx
je 0x419b73
mov al, byte [ebx]
inc ebx
test esi, esi
mov byte [esp + 0x34], al
mov dword [esp + 0x30], ebx
je 0x419af0
mov eax, dword [esp + 0x34]
and eax, 0xff
mov al, byte [eax + esi]
cmp al, 0x2a
je 0x419b39
mov ecx, dword [esp + 0x70]
and ecx, 2
jne 0x419b05
cmp al, 0x2b
je 0x419b3b
cmp al, 0x3f
je 0x419b39
test ecx, ecx
je 0x419b6e
cmp al, 0x5c
jne 0x419b6e
cmp ebx, edx
je 0x41a0ad
mov al, byte [ebx]
inc ebx
test esi, esi
mov byte [esp + 0x40], al
mov dword [esp + 0x30], ebx
je 0x419b31
mov ecx, dword [esp + 0x40]
and ecx, 0xff
mov al, byte [ecx + esi]
cmp al, 0x2b
je 0x419b3b
cmp al, 0x3f
jne 0x419b69
cmp al, 0x2b
mov cl, byte [esp + 0x74]
mov esi, dword [esp + 0x3c]
setne dl
or cl, dl
mov edx, dword [esp + 0x38]
cmp al, 0x3f
mov byte [esp + 0x74], cl
mov cl, byte [esp + 0x11]
setne al
or cl, al
cmp ebx, edx
mov byte [esp + 0x11], cl
jne 0x419ad5
jmp 0x419b73
sub ebx, 2
jmp 0x419b6f
dec ebx
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x41a027
mov al, byte [esp + 0x11]
mov edi, dword [esp + 0x20]
test al, al
je 0x419cb5
mov eax, dword [ebp]
mov ecx, edi
sub ecx, eax
mov eax, dword [ebp + 4]
add ecx, 3
cmp ecx, eax
jbe 0x419c39
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x419bc8
mov dword [ebp + 4], 0x10000
mov edx, dword [ebp + 4]
push edx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x419c1c
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
sub eax, esi
add edi, eax
add edx, eax
test ecx, ecx
mov dword [esp + 0x2c], edx
je 0x419c00
add ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x419c0e
add ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x419c1c
add ecx, eax
mov dword [esp + 0x28], ecx
mov esi, dword [ebp]
mov ecx, dword [ebp + 4]
mov eax, edi
sub eax, esi
add eax, 3
cmp eax, ecx
ja 0x419ba4
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
test esi, esi
je 0x419c4c
movsx eax, byte [esi + 0x2e]
xor ecx, ecx
mov cl, byte [ebx - 2]
movsx ecx, byte [ecx + esi]
jmp 0x419c55
movsx ecx, byte [ebx - 2]
mov eax, 0x2e
cmp ecx, eax
jne 0x419c9d
mov al, byte [esp + 0x74]
test al, al
je 0x419c9d
cmp ebx, edx
jae 0x419c9d
test esi, esi
je 0x419c77
movsx eax, byte [esi + 0xa]
xor edx, edx
mov dl, byte [ebx]
movsx ecx, byte [edx + esi]
jmp 0x419c7f
movsx ecx, byte [ebx]
mov eax, 0xa
cmp ecx, eax
jne 0x419c9d
test byte [esp + 0x70], 0x40
jne 0x419c9d
mov eax, dword [esp + 0x1c]
mov byte [edi], 0xc
sub eax, edi
mov byte [esp + 0x12], 1
sub eax, 3
jmp 0x419ca9
mov eax, dword [esp + 0x1c]
mov byte [edi], 0x11
sub eax, edi
sub eax, 6
mov byte [edi + 1], al
sar eax, 8
mov byte [edi + 2], al
add edi, 3
mov esi, dword [ebp]
mov ecx, dword [ebp + 4]
mov eax, edi
sub eax, esi
add eax, 3
cmp eax, ecx
jbe 0x419d57
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x419cee
mov dword [ebp + 4], 0x10000
mov ecx, dword [ebp + 4]
push ecx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x419d42
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
sub eax, esi
add edi, eax
add edx, eax
test ecx, ecx
mov dword [esp + 0x2c], edx
je 0x419d26
add ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x419d34
add ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x419d42
add ecx, eax
mov dword [esp + 0x28], ecx
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov edx, edi
sub edx, esi
add edx, 3
cmp edx, eax
ja 0x419cca
mov ecx, dword [esp + 0x1c]
mov bl, byte [esp + 0x12]
mov edx, edi
xor eax, eax
sub edx, ecx
test bl, bl
setne al
add eax, 0xe
push eax
mov eax, edi
call fcn.004173b0
mov al, byte [esp + 0x78]
add esp, 4
xor ebx, ebx
add edi, 3
test al, al
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edi
jne 0x41a02b
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov ecx, edi
sub ecx, esi
add ecx, 3
cmp ecx, eax
jbe 0x419e2f
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x419dca
mov dword [ebp + 4], 0x10000
mov edx, dword [ebp + 4]
push edx
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x419e1a
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
sub eax, esi
add edi, eax
add edx, eax
test ecx, ecx
mov dword [esp + 0x2c], edx
je 0x419e02
add ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x419e10
add ecx, eax
mov dword [esp + 0x1c], ecx
test ebx, ebx
je 0x419e1a
add ebx, eax
mov dword [esp + 0x28], ebx
mov esi, dword [ebp]
mov ecx, dword [ebp + 4]
mov eax, edi
sub eax, esi
add eax, 3
cmp eax, ecx
ja 0x419da6
mov ecx, dword [esp + 0x1c]
push 0x12
mov eax, edi
mov edx, 3
call fcn.004173b0
add esp, 4
add edi, 3
mov dword [esp + 0x20], edi
jmp 0x41a02b
mov dl, byte [esp + 0x34]
mov byte [esp + 0x34], dl
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x20]
test ebx, ebx
je 0x419ecf
mov al, byte [ebx]
mov ecx, eax
and ecx, 0xff
lea edx, [ecx + ebx + 1]
cmp edx, edi
jne 0x419ecf
cmp al, 0xff
je 0x419ecf
mov esi, dword [esp + 0x30]
mov al, byte [esi]
cmp al, 0x2a
je 0x419ecf
cmp al, 0x5e
je 0x419ecf
mov edx, dword [esp + 0x70]
test dl, 2
je 0x419ea4
cmp al, 0x5c
jne 0x419eac
mov cl, byte [esi + 1]
cmp cl, 0x2b
je 0x419ecf
cmp cl, 0x3f
jne 0x419eac
jmp 0x419ecf
cmp al, 0x2b
je 0x419ecf
cmp al, 0x3f
je 0x419ecf
test dh, 2
je 0x419f7c
test dh, 0x10
je 0x41a06f
xor ecx, ecx
cmp al, 0x7b
sete cl
mov eax, ecx
test eax, eax
je 0x419f7c
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov edx, edi
mov dword [esp + 0x1c], edi
sub edx, esi
add edx, 2
cmp edx, eax
jbe 0x419f6d
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x419f0c
mov dword [ebp + 4], 0x10000
mov eax, dword [ebp + 4]
push eax
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x419f58
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
sub eax, esi
add edi, eax
add edx, eax
test ecx, ecx
mov dword [esp + 0x2c], edx
je 0x419f44
add ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x419f52
add ecx, eax
mov dword [esp + 0x1c], ecx
test ebx, ebx
je 0x419f58
add ebx, eax
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov ecx, edi
sub ecx, esi
add ecx, 2
cmp ecx, eax
ja 0x419ee8
mov byte [edi], 1
inc edi
mov byte [edi], 0
inc edi
lea ebx, [edi - 1]
mov dword [esp + 0x28], ebx
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov edx, edi
sub edx, esi
inc edx
cmp edx, eax
jbe 0x41a016
mov eax, dword [ebp + 4]
mov esi, dword [ebp]
cmp eax, 0x10000
je 0x41a093
add eax, eax
cmp eax, 0x10000
mov dword [ebp + 4], eax
jbe 0x419fb3
mov dword [ebp + 4], 0x10000
mov eax, dword [ebp + 4]
push eax
push esi
call fcn.0041e521
add esp, 8
mov dword [ebp], eax
test eax, eax
je 0x417c33
cmp esi, eax
je 0x41a003
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
sub eax, esi
add edi, eax
add edx, eax
test ecx, ecx
mov dword [esp + 0x2c], edx
je 0x419feb
add ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x419ff9
add ecx, eax
mov dword [esp + 0x1c], ecx
test ebx, ebx
je 0x41a003
add ebx, eax
mov dword [esp + 0x28], ebx
mov esi, dword [ebp]
mov eax, dword [ebp + 4]
mov ecx, edi
sub ecx, esi
inc ecx
cmp ecx, eax
ja 0x419f8f
mov dl, byte [esp + 0x34]
mov byte [edi], dl
mov al, byte [ebx]
inc edi
inc al
mov byte [ebx], al
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
cmp eax, ecx
jne 0x417c5a
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x41a056
mov eax, edi
mov byte [ecx], 0xd
sub eax, ecx
sub eax, 3
mov byte [ecx + 1], al
sar eax, 8
mov byte [ecx + 2], al
mov eax, dword [esp + 0x64]
test eax, eax
je 0x41a0ee
pop ebx
pop edi
pop esi
mov eax, 8
pop ebp
add esp, 0x58
ret
cmp al, 0x5c
jne 0x419f7c
cmp byte [esi + 1], 0x7b
je 0x419ecf
jmp 0x419f7c
pop ebx
pop edi
pop esi
mov eax, 0xe
pop ebp
add esp, 0x58
ret
pop ebx
pop edi
pop esi
mov eax, 0xf
pop ebp
add esp, 0x58
ret
pop ebx
pop edi
pop esi
mov eax, 7
pop ebp
add esp, 0x58
ret
pop ebx
pop edi
pop esi
mov eax, 5
pop ebp
add esp, 0x58
ret
pop ebx
pop edi
pop esi
mov eax, 4
pop ebp
add esp, 0x58
ret
pop ebx
pop edi
pop esi
mov eax, 0xa
pop ebp
add esp, 0x58
ret
pop ebx
pop edi
pop esi
mov eax, 0xd
pop ebp
add esp, 0x58
ret
pop ebx
pop edi
pop esi
mov eax, 6
pop ebp
add esp, 0x58
ret
mov ecx, dword [esp + 0x5c]
push ecx
call fcn.0041e683
mov eax, dword [ebp]
add esp, 4
sub edi, eax
xor eax, eax
mov dword [ebp + 8], edi
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x58
ret