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

Disassembly:
sub esp, 0x74
mov eax, dword [esp + 0x84]
push ebx
mov ebx, dword [esp + 0x84]
push ebp
mov ecx, dword [eax]
xor ebp, ebp
mov eax, dword [esp + 0x84]
push esi
mov esi, eax
mov dword [esp + 0x54], ebp
push edi
mov edi, eax
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x94]
add eax, ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
lea edx, [eax - 0xc]
mov dword [ebp], 0
add eax, 0xfffffffb
mov dword [esp + 0x18], ebx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x98]
add eax, ebx
mov dword [esp + 0x40], 0
cmp dword [esp + 0xa0], 2
mov dword [esp + 0x20], 0
mov dword [esp + 0x30], 0
lea ebp, [eax - 5]
cmovne ebp, eax
mov dword [esp + 0x24], ebp
cmp ecx, 0xd
jl 0x419183
cmp esi, edx
ja 0x419183
nop word [eax + eax]
mov ebp, dword [esp + 0x88]
mov edi, esi
mov dword [esp + 0x1c], 3
mov edx, dword [ebp + 0x40004]
sub edi, edx
mov eax, dword [ebp + 0x40010]
mov ebx, dword [ebp + 0x40014]
mov dword [esp + 0x4c], eax
add eax, edx
mov dword [esp + 0x68], eax
lea ecx, [edi - 0xffff]
mov dword [esp + 0x38], edx
lea eax, [ebx + 0x10000]
cmp eax, edi
mov eax, dword [ebp + 0x40008]
mov dword [esp + 0x80], eax
cmovbe ebx, ecx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x60], ebx
xor eax, eax
mov ebx, dword [esi]
mov esi, dword [ebp + 0x40018]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x54], eax
mov dword [esp + 0x64], eax
cmp esi, edi
jae 0x417bc3
mov ebx, edx
nop dword [eax]
imul eax, dword [ebx + esi], 0x9e3779b1
mov ecx, esi
shr eax, 0x11
lea edx, [eax*4]
mov eax, 0xffff
sub ecx, dword [edx + ebp]
cmp ecx, 0xffff
cmova ecx, eax
movzx eax, si
mov word [ebp + eax*2 + 0x20000], cx
mov dword [edx + ebp], esi
inc esi
cmp esi, edi
jb 0x417b80
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x10]
mov dword [ebp + 0x40018], edi
imul eax, dword [esi], 0x9e3779b1
shr eax, 0x11
mov ebp, dword [ebp + eax*4]
cmp ebp, dword [esp + 0x60]
jb 0x417f01
test ecx, ecx
je 0x417f01
mov edi, dword [esp + 0x4c]
dec ecx
mov dword [esp + 0x44], ecx
cmp ebp, edi
jb 0x417d3b
mov ecx, dword [esp + 0x1c]
lea edi, [edx + ebp]
mov ax, word [ecx + esi - 1]
cmp ax, word [edi + ecx - 1]
jne 0x417c91
cmp dword [edi], ebx
jne 0x417c91
lea ecx, [esi + 4]
mov esi, dword [esp + 0x28]
add esi, 0xfffffffd
lea edx, [edi + 4]
mov ebx, ecx
cmp ecx, esi
jae 0x417c54
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x417d21
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x417c54
nop
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x417d2c
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x417c40
mov esi, dword [esp + 0x28]
lea eax, [esi - 1]
cmp ecx, eax
jae 0x417c6d
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x417c6d
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x417c78
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x417c78
inc ecx
mov eax, ecx
sub eax, ebx
mov ebx, dword [esp + 0x48]
add eax, 4
cmp eax, dword [esp + 0x1c]
jle 0x417c91
mov dword [esp + 0x1c], eax
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x88]
movzx eax, bp
movzx eax, word [ecx + eax*2 + 0x20000]
sub ebp, eax
cmp dword [esp + 0x9c], 0x40
jbe 0x417ee7
cmp eax, 1
jne 0x417ee7
mov esi, dword [esp + 0x54]
test esi, esi
jne 0x417e83
mov ecx, dword [esp + 0x48]
mov eax, ebx
shr eax, 0x18
xor ebx, ebx
cmp cl, al
mov edx, ecx
movzx eax, cx
sete bl
shr edx, 0x10
xor ecx, ecx
cmp eax, edx
sete cl
test ecx, ebx
je 0x417e79
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x28]
add eax, 4
push ebx
push esi
push eax
mov dword [esp + 0x60], 2
call fcn.00416e00
add esp, 0xc
add eax, 4
mov dword [esp + 0x64], eax
jmp 0x417e8c
bsf eax, eax
shr eax, 3
jmp 0x417c7c
bsf eax, eax
shr eax, 3
sub eax, ebx
add eax, ecx
jmp 0x417c7c
mov ecx, dword [esp + 0x80]
cmp dword [ecx + ebp], ebx
jne 0x417c95
mov eax, edi
lea edx, [ecx + 4]
mov edi, dword [esp + 0x28]
lea ecx, [esi + 4]
sub eax, ebp
mov ebx, ecx
add eax, esi
cmp eax, edi
cmovbe edi, eax
add edx, ebp
lea esi, [edi - 3]
cmp ecx, esi
jae 0x417d94
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x417e4b
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x417d94
nop
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x417e56
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x417d80
lea eax, [edi - 1]
cmp ecx, eax
jae 0x417da9
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x417da9
add ecx, 2
add edx, 2
cmp ecx, edi
jae 0x417db4
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x417db4
inc ecx
mov eax, ecx
sub eax, ebx
mov ecx, dword [esp + 0x10]
lea ebx, [eax + 4]
add ecx, ebx
cmp ecx, edi
jne 0x417e2a
mov esi, dword [esp + 0x28]
cmp edi, esi
jae 0x417e2a
mov edx, dword [esp + 0x68]
add esi, 0xfffffffd
mov edi, ecx
cmp ecx, esi
jae 0x417e00
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x417e65
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x417e00
nop
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x417e6d
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x417df0
mov esi, dword [esp + 0x28]
lea eax, [esi - 1]
cmp ecx, eax
jae 0x417e19
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x417e19
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x417e24
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x417e24
inc ecx
mov eax, ecx
sub eax, edi
add ebx, eax
mov edi, dword [esp + 0x4c]
cmp ebx, dword [esp + 0x1c]
jle 0x417e42
mov eax, dword [esp + 0x38]
add eax, ebp
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x40], eax
mov ebx, dword [esp + 0x48]
jmp 0x417c95
bsf eax, eax
shr eax, 3
jmp 0x417db8
bsf eax, eax
shr eax, 3
sub eax, ebx
add eax, ecx
jmp 0x417db8
bsf eax, eax
shr eax, 3
jmp 0x417e28
bsf eax, eax
shr eax, 3
sub eax, edi
add eax, ecx
jmp 0x417e28
mov dword [esp + 0x54], 1
jmp 0x417ee7
cmp esi, 2
jne 0x417ee7
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x38]
cmp ebp, edi
jb 0x417eeb
cmp dword [edx + ebp], ebx
lea edi, [edx + ebp]
jne 0x417eeb
push ebx
lea eax, [edi + 4]
push esi
push eax
call fcn.00416e00
mov edx, dword [esp + 0x74]
push ebx
mov ebx, dword [esp + 0x20]
lea esi, [eax + 4]
lea eax, [edx + 0xffff]
cmp eax, ebx
lea ecx, [ebx - 0xffff]
cmovb edx, ecx
push edx
push edi
call fcn.00416e50
mov edx, dword [esp + 0x7c]
mov ecx, eax
add esp, 0x18
lea eax, [ecx + esi]
cmp eax, edx
jb 0x417ee5
cmp esi, edx
ja 0x417ee5
sub esi, edx
add ebp, esi
jmp 0x417ee7
sub ebp, ecx
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x10]
cmp ebp, dword [esp + 0x60]
jae 0x417be4
mov ecx, dword [esp + 0x1c]
cmp ecx, 4
jge 0x417f18
mov ebx, dword [esp + 0x18]
inc esi
mov edi, dword [esp + 0x14]
jmp 0x41916c
mov eax, dword [esp + 0x40]
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
nop dword [eax + eax]
mov edx, dword [esp + 0x3c]
lea eax, [ecx + esi]
add edx, 0xfffffff4
mov dword [esp + 0x54], eax
cmp eax, edx
ja 0x419024
lea edx, [eax - 2]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x88]
mov edi, edx
mov dword [esp + 0x38], edx
mov ebp, dword [ecx + 0x40004]
sub edi, ebp
mov eax, dword [ecx + 0x40010]
mov ebx, dword [ecx + 0x40014]
mov dword [esp + 0x70], eax
add eax, ebp
mov dword [esp + 0x5c], eax
lea ecx, [edi - 0xffff]
mov dword [esp + 0x64], ebp
lea eax, [ebx + 0x10000]
cmp eax, edi
cmovbe ebx, ecx
mov ecx, dword [edx]
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x34], ecx
mov eax, dword [ebx + 0x40008]
mov dword [esp + 0x6c], eax
mov eax, edx
sub eax, esi
mov esi, dword [ebx + 0x40018]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x68], eax
xor eax, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x74], eax
cmp esi, edi
jae 0x418006
nop
imul eax, dword [esi + ebp], 0x9e3779b1
mov ecx, esi
shr eax, 0x11
sub ecx, dword [ebx + eax*4]
lea edx, [ebx + eax*4]
cmp ecx, 0xffff
mov eax, 0xffff
cmova ecx, eax
movzx eax, si
mov word [ebx + eax*2 + 0x20000], cx
mov dword [edx], esi
inc esi
cmp esi, edi
jb 0x417fd0
mov ecx, dword [esp + 0x34]
mov dword [ebx + 0x40018], edi
mov edi, dword [esp + 0x38]
imul eax, dword [edi], 0x9e3779b1
shr eax, 0x11
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x44], ebx
cmp ebx, dword [esp + 0x60]
jb 0x418413
nop word [eax + eax]
mov eax, dword [esp + 0x68]
test eax, eax
je 0x418413
dec eax
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x70]
cmp ebx, eax
jb 0x418156
mov esi, dword [esp + 0x2c]
add ebp, ebx
mov eax, dword [esp + 0x10]
mov ecx, ebp
sub ecx, dword [esp + 0x4c]
mov ax, word [esi + eax - 1]
cmp ax, word [ecx + esi - 1]
mov ecx, dword [esp + 0x34]
jne 0x4182f5
cmp dword [ebp], ecx
jne 0x4182f5
mov ebx, dword [esp + 0x28]
lea ecx, [edi + 4]
lea edx, [ebp + 4]
mov edi, ecx
lea esi, [ebx - 3]
cmp ecx, esi
jae 0x4180b5
mov eax, dword [edx]
xor eax, dword [ecx]
jne 0x418142
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x4180b5
mov eax, dword [edx]
xor eax, dword [ecx]
jne 0x41814a
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x4180a1
lea eax, [ebx - 1]
cmp ecx, eax
jae 0x4180ca
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x4180ca
add ecx, 2
add edx, 2
cmp ecx, ebx
jae 0x4180d5
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x4180d5
inc ecx
mov eax, ecx
sub eax, edi
xor edx, edx
lea ebx, [eax + 4]
cmp dword [esp + 0x4c], edx
je 0x418113
mov esi, dword [esp + 0x10]
mov edi, ebp
sub esi, dword [esp + 0x38]
neg edi
mov eax, dword [esp + 0x5c]
add eax, edi
cmp esi, eax
cmovle esi, eax
test esi, esi
jns 0x418113
add edi, dword [esp + 0x38]
lea ecx, [ebp - 1]
mov al, byte [edi + ecx]
cmp al, byte [ecx]
jne 0x418113
dec edx
dec ecx
cmp edx, esi
jg 0x418106
mov ecx, dword [esp + 0x34]
sub ebx, edx
cmp ebx, dword [esp + 0x2c]
jle 0x4182f1
lea eax, [edx + ebp]
mov dword [esp + 0x2c], ebx
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x30], eax
lea eax, [edx + ebp]
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x44]
jmp 0x4182f9
bsf eax, eax
shr eax, 3
jmp 0x4180d9
bsf eax, eax
shr eax, 3
sub eax, edi
add eax, ecx
jmp 0x4180d9
mov ebp, dword [esp + 0x6c]
add ebp, ebx
cmp dword [ebp], ecx
jne 0x4182f5
mov ecx, dword [esp + 0x54]
lea edx, [ebp + 4]
sub eax, ebx
add eax, edi
mov edi, dword [esp + 0x28]
cmp eax, edi
cmovbe edi, eax
add ecx, 2
mov ebx, ecx
lea esi, [edi - 3]
cmp ecx, esi
jae 0x4181b4
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x4182bd
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x4181b4
nop dword [eax]
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x4182c8
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x4181a0
lea eax, [edi - 1]
cmp ecx, eax
jae 0x4181c9
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x4181c9
add ecx, 2
add edx, 2
cmp ecx, edi
jae 0x4181d4
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x4181d4
inc ecx
mov eax, ecx
sub eax, ebx
mov ecx, dword [esp + 0x38]
lea ebx, [eax + 4]
add ecx, ebx
cmp ecx, edi
jne 0x41824e
mov esi, dword [esp + 0x28]
cmp edi, esi
jae 0x41824e
mov edx, dword [esp + 0x5c]
add esi, 0xfffffffd
mov edi, ecx
cmp ecx, esi
jae 0x418224
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x4182d7
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x418224
nop
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x4182e2
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x418210
mov esi, dword [esp + 0x28]
lea eax, [esi - 1]
cmp ecx, eax
jae 0x41823d
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x41823d
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x418248
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x418248
inc ecx
mov eax, ecx
sub eax, edi
add ebx, eax
mov edi, dword [esp + 0x38]
xor edx, edx
cmp dword [esp + 0x4c], edx
je 0x41828d
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x10]
sub eax, ebp
add eax, dword [esp + 0x6c]
sub esi, edi
cmp esi, eax
cmovle esi, eax
test esi, esi
jns 0x41828d
mov ecx, dword [esp + 0x54]
add ecx, 0xfffffffd
sub ebp, edi
nop dword [eax]
mov al, byte [ecx]
cmp al, byte [ecx + ebp]
jne 0x41828d
dec edx
dec ecx
cmp edx, esi
jg 0x418280
mov ebp, dword [esp + 0x38]
sub ebx, edx
mov ecx, dword [esp + 0x34]
cmp ebx, dword [esp + 0x2c]
jle 0x418139
mov dword [esp + 0x2c], ebx
lea eax, [edx + edi]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x20], eax
lea esi, [edx + ebx]
add esi, dword [esp + 0x64]
mov dword [esp + 0x30], esi
jmp 0x4182f9
bsf eax, eax
shr eax, 3
jmp 0x4181d8
bsf eax, eax
shr eax, 3
sub eax, ebx
add eax, ecx
jmp 0x4181d8
bsf eax, eax
shr eax, 3
jmp 0x41824c
bsf eax, eax
shr eax, 3
sub eax, edi
add eax, ecx
jmp 0x41824c
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x38]
mov edx, dword [esp + 0x88]
movzx eax, bx
movzx eax, word [edx + eax*2 + 0x20000]
sub ebx, eax
cmp dword [esp + 0x9c], 0x40
mov dword [esp + 0x44], ebx
jbe 0x418401
cmp eax, 1
jne 0x418401
mov esi, dword [esp + 0x48]
test esi, esi
jne 0x41838b
mov eax, ecx
xor ebx, ebx
shr eax, 0x18
mov edx, ecx
cmp cl, al
movzx eax, cx
sete bl
shr edx, 0x10
xor ecx, ecx
cmp eax, edx
sete cl
test ecx, ebx
je 0x41837d
push dword [esp + 0x34]
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x2c]
add eax, 2
push esi
push eax
mov dword [esp + 0x54], 2
call fcn.00416e00
mov ebx, dword [esp + 0x50]
add esp, 0xc
add eax, 4
mov dword [esp + 0x74], eax
jmp 0x418394
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x48], 1
jmp 0x4183fd
cmp esi, 2
jne 0x418401
mov esi, dword [esp + 0x28]
cmp ebx, dword [esp + 0x70]
jb 0x4183fd
mov edi, dword [esp + 0x64]
mov ecx, dword [esp + 0x34]
add edi, ebx
cmp dword [edi], ecx
jne 0x418401
push ecx
lea eax, [edi + 4]
push esi
push eax
call fcn.00416e00
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x60]
push dword [esp + 0x40]
lea esi, [eax + 4]
add ecx, 0xfffeffff
lea eax, [edx + 0xffff]
cmp eax, ebp
cmovb edx, ecx
push edx
push edi
call fcn.00416e50
mov edx, dword [esp + 0x8c]
mov ecx, eax
add esp, 0x18
lea eax, [ecx + esi]
cmp eax, edx
jb 0x4183f7
cmp esi, edx
ja 0x4183f7
sub esi, edx
add ebx, esi
jmp 0x4183f9
sub ebx, ecx
mov dword [esp + 0x44], ebx
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0x64]
cmp ebx, dword [esp + 0x60]
jae 0x418030
mov ebx, dword [esp + 0x2c]
cmp ebx, dword [esp + 0x1c]
je 0x419024
mov ecx, dword [esp + 0x78]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
cmp ecx, edi
jae 0x418455
mov edx, dword [esp + 0x80]
lea eax, [edx + edi]
cmp esi, eax
jae 0x418455
mov eax, dword [esp + 0x7c]
mov edi, ecx
mov ecx, edx
mov dword [esp + 0x10], edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x1c], ecx
jmp 0x418459
mov ecx, dword [esp + 0x1c]
mov eax, esi
sub eax, edi
cmp eax, 3
jge 0x418479
mov eax, dword [esp + 0x30]
mov ecx, ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x40], eax
jmp 0x417f30
mov ebp, dword [esp + 0x30]
nop dword [eax]
mov eax, esi
sub eax, edi
cmp eax, 0x12
jge 0x4184c5
cmp ecx, 0x12
mov edx, ecx
mov eax, 0x12
lea ecx, [esi - 4]
cmovg edx, eax
add ecx, ebx
lea eax, [edx + edi]
cmp eax, ecx
jbe 0x4184ab
mov edx, ebx
sub edx, edi
add edx, 0xfffffffc
add edx, esi
sub edx, esi
add edx, edi
test edx, edx
jle 0x4184c5
add esi, edx
add ebp, edx
sub ebx, edx
mov dword [esp + 0x20], esi
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], ebx
mov ecx, dword [esp + 0x3c]
lea eax, [ebx + esi]
add ecx, 0xfffffff4
cmp eax, ecx
ja 0x418d7f
mov ecx, dword [esp + 0x88]
lea edx, [eax - 3]
mov dword [esp + 0x4c], ebx
mov edi, edx
mov dword [esp + 0x34], edx
mov ebp, dword [ecx + 0x40004]
sub edi, ebp
mov eax, dword [ecx + 0x40010]
mov ebx, dword [ecx + 0x40014]
mov dword [esp + 0x54], eax
add eax, ebp
mov dword [esp + 0x5c], eax
lea ecx, [edi - 0xffff]
mov dword [esp + 0x48], ebp
lea eax, [ebx + 0x10000]
cmp eax, edi
cmovbe ebx, ecx
mov ecx, dword [edx]
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x38], ecx
mov eax, dword [ebx + 0x40008]
mov dword [esp + 0x70], eax
mov eax, edx
sub eax, esi
mov esi, dword [ebx + 0x40018]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x74], eax
xor eax, eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x6c], eax
cmp esi, edi
jae 0x418596
imul eax, dword [esi + ebp], 0x9e3779b1
mov ecx, esi
shr eax, 0x11
sub ecx, dword [ebx + eax*4]
lea edx, [ebx + eax*4]
cmp ecx, 0xffff
mov eax, 0xffff
cmova ecx, eax
movzx eax, si
mov word [ebx + eax*2 + 0x20000], cx
mov dword [edx], esi
inc esi
cmp esi, edi
jb 0x418560
mov ecx, dword [esp + 0x38]
mov dword [ebx + 0x40018], edi
mov edi, dword [esp + 0x34]
imul eax, dword [edi], 0x9e3779b1
shr eax, 0x11
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x44], ebx
cmp ebx, dword [esp + 0x68]
jb 0x418d77
nop word [eax + eax]
mov eax, dword [esp + 0x74]
test eax, eax
je 0x418991
mov esi, dword [esp + 0x54]
dec eax
mov dword [esp + 0x74], eax
cmp ebx, esi
jb 0x4186e5
mov esi, dword [esp + 0x4c]
add ebp, ebx
mov eax, dword [esp + 0x20]
mov ecx, ebp
sub ecx, dword [esp + 0x64]
mov ax, word [esi + eax - 1]
cmp ax, word [ecx + esi - 1]
mov ecx, dword [esp + 0x38]
jne 0x418879
cmp dword [ebp], ecx
jne 0x418879
mov ebx, dword [esp + 0x28]
lea ecx, [edi + 4]
lea edx, [ebp + 4]
mov edi, ecx
lea esi, [ebx - 3]
cmp ecx, esi
jae 0x418645
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x4186d1
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x418645
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x4186d9
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x418631
lea eax, [ebx - 1]
cmp ecx, eax
jae 0x41865a
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x41865a
add ecx, 2
add edx, 2
cmp ecx, ebx
jae 0x418665
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x418665
inc ecx
mov eax, ecx
sub eax, edi
xor edx, edx
lea ebx, [eax + 4]
cmp dword [esp + 0x64], edx
je 0x4186a3
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x20]
sub eax, ebp
sub esi, dword [esp + 0x34]
cmp esi, eax
cmovle esi, eax
test esi, esi
jns 0x4186a3
mov eax, dword [esp + 0x34]
mov edi, ebp
sub edi, eax
lea ecx, [eax - 1]
mov al, byte [ecx]
cmp al, byte [edi + ecx]
jne 0x4186a3
dec edx
dec ecx
cmp edx, esi
jg 0x418696
mov edi, dword [esp + 0x34]
sub ebx, edx
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x54]
cmp ebx, dword [esp + 0x4c]
jle 0x4186c8
lea eax, [edx + ebp]
mov dword [esp + 0x4c], ebx
add edx, edi
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], edx
mov ebx, dword [esp + 0x44]
jmp 0x41887d
bsf eax, eax
shr eax, 3
jmp 0x418669
bsf eax, eax
shr eax, 3
sub eax, edi
add eax, ecx
jmp 0x418669
mov ebp, dword [esp + 0x70]
add ebp, ebx
cmp dword [ebp], ecx
jne 0x41887d
mov ecx, dword [esp + 0x34]
lea edx, [ebp + 4]
mov eax, esi
sub eax, ebx
add eax, edi
mov edi, dword [esp + 0x28]
cmp eax, edi
cmovbe edi, eax
add ecx, 4
mov ebx, ecx
lea esi, [edi - 3]
cmp ecx, esi
jae 0x418744
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x418845
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x418744
nop word [eax + eax]
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x418850
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x418730
lea eax, [edi - 1]
cmp ecx, eax
jae 0x418759
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x418759
add ecx, 2
add edx, 2
cmp ecx, edi
jae 0x418764
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x418764
inc ecx
mov eax, ecx
sub eax, ebx
lea ebx, [eax + 4]
mov eax, dword [esp + 0x34]
add eax, ebx
cmp eax, edi
jne 0x4187de
mov esi, dword [esp + 0x28]
cmp edi, esi
jae 0x4187de
mov edx, dword [esp + 0x5c]
add esi, 0xfffffffd
mov edi, eax
cmp eax, esi
jae 0x4187b4
mov ecx, dword [eax]
xor ecx, dword [edx]
jne 0x41885f
add eax, 4
add edx, 4
cmp eax, esi
jae 0x4187b4
nop
mov ecx, dword [eax]
xor ecx, dword [edx]
jne 0x41886a
add eax, 4
add edx, 4
cmp eax, esi
jb 0x4187a0
mov esi, dword [esp + 0x28]
lea ecx, [esi - 1]
cmp eax, ecx
jae 0x4187cd
mov cx, word [edx]
cmp cx, word [eax]
jne 0x4187cd
add eax, 2
add edx, 2
cmp eax, esi
jae 0x4187d8
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x4187d8
inc eax
mov ecx, eax
sub ecx, edi
add ebx, ecx
mov edi, dword [esp + 0x34]
xor edx, edx
cmp dword [esp + 0x64], edx
je 0x418815
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x20]
sub eax, ebp
add eax, dword [esp + 0x70]
sub esi, edi
cmp esi, eax
cmovle esi, eax
test esi, esi
jns 0x418815
lea ecx, [edi - 1]
sub ebp, edi
mov al, byte [ecx]
cmp al, byte [ecx + ebp]
jne 0x418815
dec edx
dec ecx
cmp edx, esi
jg 0x418808
mov ecx, dword [esp + 0x38]
sub ebx, edx
mov esi, dword [esp + 0x54]
cmp ebx, dword [esp + 0x4c]
jle 0x4186c8
mov dword [esp + 0x4c], ebx
lea eax, [edx + edi]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x58], eax
lea ebp, [edx + ebx]
add ebp, dword [esp + 0x48]
mov dword [esp + 0x50], ebp
jmp 0x41887d
bsf eax, eax
shr eax, 3
jmp 0x418768
bsf eax, eax
shr eax, 3
sub eax, ebx
add eax, ecx
jmp 0x418768
bsf ecx, ecx
shr ecx, 3
jmp 0x4187dc
bsf ecx, ecx
shr ecx, 3
sub ecx, edi
add ecx, eax
jmp 0x4187dc
mov esi, dword [esp + 0x54]
mov edx, dword [esp + 0x88]
movzx eax, bx
movzx eax, word [edx + eax*2 + 0x20000]
sub ebx, eax
cmp dword [esp + 0x9c], 0x40
mov dword [esp + 0x44], ebx
jbe 0x41897f
cmp eax, 1
jne 0x41897f
mov ebp, dword [esp + 0x60]
test ebp, ebp
jne 0x41890a
mov eax, ecx
xor ebx, ebx
shr eax, 0x18
mov edx, ecx
cmp cl, al
movzx eax, cx
sete bl
shr edx, 0x10
xor ecx, ecx
cmp eax, edx
sete cl
test ecx, ebx
je 0x4188fc
push dword [esp + 0x38]
lea eax, [edi + 4]
mov dword [esp + 0x64], 2
push dword [esp + 0x2c]
push eax
call fcn.00416e00
mov ebx, dword [esp + 0x50]
add esp, 0xc
add eax, 4
mov dword [esp + 0x6c], eax
jmp 0x41890f
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x60], 1
jmp 0x41897b
cmp ebp, 2
jne 0x41897f
mov ebp, dword [esp + 0x48]
mov ecx, dword [esp + 0x38]
cmp ebx, esi
jb 0x418983
cmp dword [ebx + ebp], ecx
lea edi, [ebx + ebp]
jne 0x418983
push ecx
push dword [esp + 0x2c]
lea eax, [edi + 4]
push eax
call fcn.00416e00
mov edx, dword [esp + 0x68]
mov ebp, dword [esp + 0x40]
push dword [esp + 0x44]
lea esi, [eax + 4]
lea eax, [edx + 0xffff]
cmp eax, ebp
lea ecx, [ebp - 0xffff]
cmovb edx, ecx
push edx
push edi
call fcn.00416e50
mov edx, dword [esp + 0x84]
mov ecx, eax
add esp, 0x18
lea eax, [ecx + esi]
cmp eax, edx
jb 0x418975
cmp esi, edx
ja 0x418975
sub esi, edx
add ebx, esi
jmp 0x418977
sub ebx, ecx
mov dword [esp + 0x44], ebx
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x34]
cmp ebx, dword [esp + 0x68]
jae 0x4185c0
mov ebp, dword [esp + 0x4c]
mov ebx, dword [esp + 0x2c]
cmp ebp, ebx
je 0x418d77
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x58]
lea edi, [ecx + esi]
lea eax, [edi + 3]
cmp edx, eax
jae 0x4189dc
cmp edx, edi
jae 0x418bbe
mov edi, dword [esp + 0x10]
mov esi, edx
mov edx, dword [esp + 0x50]
mov ebx, ebp
mov dword [esp + 0x20], esi
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], ebx
jmp 0x418479
mov edx, dword [esp + 0x20]
cmp edx, edi
jae 0x418a38
mov eax, edx
sub eax, esi
cmp eax, 0xf
jge 0x418a34
cmp ecx, 0x12
mov eax, 0x12
cmovg ecx, eax
lea eax, [edx - 4]
mov dword [esp + 0x1c], ecx
add eax, ebx
add ecx, esi
cmp ecx, eax
jbe 0x418a16
mov eax, ebx
sub eax, esi
add eax, 0xfffffffc
add eax, edx
mov dword [esp + 0x1c], eax
jmp 0x418a1a
mov eax, dword [esp + 0x1c]
sub eax, edx
add eax, esi
test eax, eax
jle 0x418a38
add dword [esp + 0x30], eax
add edx, eax
sub ebx, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x2c], ebx
jmp 0x418a38
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x18]
mov esi, edx
mov ecx, dword [esp + 0x10]
mov edi, edx
sub ecx, dword [esp + 0x14]
mov ebp, edx
inc edx
mov dword [esp + 0x48], esi
cmp dword [esp + 0xa0], 0
mov dword [esp + 0x18], edx
mov dword [esp + 0x80], ecx
je 0x418a7a
mov eax, ecx
shr eax, 8
add eax, 8
add eax, ecx
add eax, edx
cmp eax, dword [esp + 0x24]
ja 0x4191e1
cmp ecx, 0xf
jb 0x418ac9
lea ebx, [ecx - 0xf]
mov byte [edi], 0xf0
cmp ebx, 0xff
jb 0x418ac4
mov eax, 0x80808081
mul ebx
mov eax, dword [esp + 0x18]
mov esi, edx
shr esi, 7
push esi
push 0xff
push eax
call fcn.0041e5b0
mov edx, dword [esp + 0x24]
add esp, 0xc
add edx, esi
sub ebx, 0xff
sub esi, 1
jne 0x418ab2
mov ecx, dword [esp + 0x80]
mov byte [edx], bl
inc edx
jmp 0x418ad0
mov al, cl
shl al, 4
mov byte [edi], al
lea esi, [ecx + edx]
push esi
push dword [esp + 0x18]
push edx
call fcn.00416c20
mov edx, dword [esp + 0x1c]
mov ebx, esi
mov esi, dword [esp + 0x28]
mov eax, edx
sub eax, dword [esp + 0x4c]
add esp, 0xc
mov word [ebx], ax
add ebx, 2
cmp dword [esp + 0xa0], 0
lea ecx, [esi - 4]
mov dword [esp + 0x18], ebx
je 0x418b1c
mov eax, ecx
shr eax, 8
add eax, 6
add eax, ebx
cmp eax, dword [esp + 0x24]
ja 0x4191dd
mov al, byte [ebp]
cmp ecx, 0xf
jb 0x418b72
add al, 0xf
sub ecx, 0xf
mov byte [edi], al
cmp ecx, 0x1fe
jb 0x418b57
mov eax, 0x80808081
mul ecx
shr edx, 8
nop dword [eax]
mov word [ebx], 0xffff
sub ecx, 0x1fe
add ebx, 2
sub edx, 1
jne 0x418b40
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
jb 0x418b69
sub ecx, 0xff
mov byte [ebx], 0xff
inc ebx
mov byte [ebx], cl
inc ebx
mov dword [esp + 0x18], ebx
jmp 0x418b76
add al, cl
mov byte [edi], al
mov ebp, dword [esp + 0x58]
lea ecx, [esi + edx]
mov eax, dword [esp + 0x50]
mov esi, ebp
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x58], ebp
mov ebp, eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], esi
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], ebx
jmp 0x418480
mov ecx, dword [esp + 0x20]
cmp ecx, edi
jae 0x418bf3
mov eax, dword [esp + 0x1c]
sub eax, ecx
add eax, esi
add dword [esp + 0x30], eax
sub ebx, eax
add ecx, eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x20], ecx
cmp ebx, 4
jge 0x418bf3
mov eax, dword [esp + 0x50]
mov dword [esp + 0x20], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ebp
mov edx, dword [esp + 0x18]
mov esi, edx
mov ecx, dword [esp + 0x10]
mov ebx, edx
sub ecx, dword [esp + 0x14]
mov ebp, edx
inc edx
mov dword [esp + 0x48], esi
cmp dword [esp + 0xa0], 0
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x18], edx
mov dword [esp + 0x80], ecx
je 0x418c39
mov eax, ecx
shr eax, 8
add eax, 8
add eax, ecx
add eax, edx
cmp eax, dword [esp + 0x24]
ja 0x4191e1
cmp ecx, 0xf
jb 0x418c8d
lea ebx, [ecx - 0xf]
mov byte [ebp], 0xf0
cmp ebx, 0xff
jb 0x418c84
mov eax, 0x80808081
mul ebx
mov eax, dword [esp + 0x18]
mov esi, edx
shr esi, 7
push esi
push 0xff
push eax
call fcn.0041e5b0
mov edx, dword [esp + 0x24]
add esp, 0xc
add edx, esi
sub ebx, 0xff
sub esi, 1
jne 0x418c72
mov ecx, dword [esp + 0x80]
mov byte [edx], bl
inc edx
mov ebx, dword [esp + 0x7c]
jmp 0x418c95
mov al, cl
shl al, 4
mov byte [ebp], al
lea esi, [ecx + edx]
push esi
push dword [esp + 0x18]
push edx
call fcn.00416c20
mov eax, dword [esp + 0x1c]
add esp, 0xc
sub eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x1c]
mov word [esi], ax
add ecx, 0xfffffffc
add esi, 2
cmp dword [esp + 0xa0], 0
mov dword [esp + 0x18], esi
je 0x418cdd
mov eax, ecx
shr eax, 8
add eax, 6
add eax, esi
cmp eax, dword [esp + 0x24]
ja 0x4191dd
mov al, byte [ebx]
cmp ecx, 0xf
jb 0x418d2e
add al, 0xf
sub ecx, 0xf
mov byte [ebp], al
cmp ecx, 0x1fe
jb 0x418d13
mov eax, 0x80808081
mul ecx
shr edx, 8
nop
mov word [esi], 0xffff
sub ecx, 0x1fe
add esi, 2
sub edx, 1
jne 0x418d00
cmp ecx, 0xff
jb 0x418d25
sub ecx, 0xff
mov byte [esi], 0xff
inc esi
mov byte [esi], cl
inc esi
mov dword [esp + 0x18], esi
jmp 0x418d33
add al, cl
mov byte [ebp], al
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x50]
mov esi, dword [esp + 0x58]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x40], edx
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x80], eax
mov dword [esp + 0x58], esi
mov dword [esp + 0x50], edx
jmp 0x417f30
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
add eax, edi
cmp esi, eax
jae 0x418d91
mov eax, esi
sub eax, edi
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x18]
mov esi, edx
mov ecx, dword [esp + 0x10]
mov edi, edx
sub ecx, dword [esp + 0x14]
mov ebp, edx
inc edx
mov dword [esp + 0x48], esi
cmp dword [esp + 0xa0], 0
mov dword [esp + 0x18], edx
mov dword [esp + 0x80], ecx
je 0x418dd3
mov eax, ecx
shr eax, 8
add eax, 8
add eax, ecx
add eax, edx
cmp eax, dword [esp + 0x24]
ja 0x4191e1
cmp ecx, 0xf
jb 0x418e27
lea ebx, [ecx - 0xf]
mov byte [edi], 0xf0
cmp ebx, 0xff
jb 0x418e22
mov eax, 0x80808081
mul ebx
mov eax, dword [esp + 0x18]
mov esi, edx
shr esi, 7
push esi
push 0xff
push eax
call fcn.0041e5b0
mov edx, dword [esp + 0x24]
add esp, 0xc
add edx, esi
nop dword [eax + eax]
sub ebx, 0xff
sub esi, 1
jne 0x418e10
mov ecx, dword [esp + 0x80]
mov byte [edx], bl
inc edx
jmp 0x418e2e
mov al, cl
shl al, 4
mov byte [edi], al
lea esi, [ecx + edx]
push esi
push dword [esp + 0x18]
push edx
call fcn.00416c20
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov ebx, dword [esp + 0x1c]
mov eax, edx
sub eax, dword [esp + 0x40]
mov word [esi], ax
add esi, 2
cmp dword [esp + 0xa0], 0
lea ecx, [ebx - 4]
je 0x418e74
mov eax, ecx
shr eax, 8
add eax, 6
add eax, esi
cmp eax, dword [esp + 0x24]
ja 0x4191dd
mov al, byte [ebp]
cmp ecx, 0xf
jb 0x418ece
add al, 0xf
sub ecx, 0xf
mov byte [edi], al
cmp ecx, 0x1fe
jb 0x418eb7
mov eax, 0x80808081
mul ecx
shr edx, 8
nop word [eax + eax]
mov word [esi], 0xffff
sub ecx, 0x1fe
add esi, 2
sub edx, 1
jne 0x418ea0
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
jb 0x418ec9
sub ecx, 0xff
mov byte [esi], 0xff
inc esi
mov byte [esi], cl
inc esi
jmp 0x418ed2
add al, cl
mov byte [edi], al
mov ebp, dword [esp + 0x20]
lea edi, [esi + 1]
add edx, ebx
mov dword [esp + 0x48], esi
mov ecx, ebp
mov dword [esp + 0x14], edx
sub ecx, edx
cmp dword [esp + 0xa0], 0
mov dword [esp + 0x80], ecx
je 0x418f0e
mov eax, ecx
shr eax, 8
add eax, 8
add eax, ecx
add eax, edi
cmp eax, dword [esp + 0x24]
ja 0x4191d7
cmp ecx, 0xf
jb 0x418f6b
lea ebx, [ecx - 0xf]
mov byte [esi], 0xf0
cmp ebx, 0xff
jb 0x418f66
mov eax, 0x80808081
mul ebx
mov esi, edx
shr esi, 7
push esi
push 0xff
push edi
call fcn.0041e5b0
mov edx, dword [esp + 0x20]
add esp, 0xc
add edi, esi
mov dword [esp + 0x14], edx
nop word [eax + eax]
sub ebx, 0xff
sub esi, 1
jne 0x418f50
mov ecx, dword [esp + 0x80]
mov esi, dword [esp + 0x48]
mov byte [edi], bl
inc edi
jmp 0x418f76
mov al, cl
mov dword [esp + 0x14], edx
shl al, 4
mov byte [esi], al
lea ebx, [ecx + edi]
push ebx
push edx
push edi
call fcn.00416c20
mov edx, dword [esp + 0x38]
mov eax, ebp
sub eax, dword [esp + 0x3c]
add esp, 0xc
mov word [ebx], ax
add ebx, 2
cmp dword [esp + 0xa0], 0
mov dword [esp + 0x18], ebx
lea ecx, [edx - 4]
je 0x418fbb
mov edi, dword [esp + 0x24]
mov eax, ecx
shr eax, 8
add eax, 6
add eax, ebx
cmp eax, edi
ja 0x419225
mov al, byte [esi]
cmp ecx, 0xf
jb 0x419018
add al, 0xf
sub ecx, 0xf
mov byte [esi], al
cmp ecx, 0x1fe
jb 0x418ff7
mov eax, 0x80808081
mul ecx
shr edx, 8
nop dword [eax + eax]
mov word [ebx], 0xffff
sub ecx, 0x1fe
add ebx, 2
sub edx, 1
jne 0x418fe0
mov edx, dword [esp + 0x2c]
cmp ecx, 0xff
jb 0x419009
sub ecx, 0xff
mov byte [ebx], 0xff
inc ebx
mov byte [ebx], cl
lea esi, [edx + ebp]
inc ebx
mov dword [esp + 0x18], ebx
jmp 0x419166
add al, cl
mov byte [esi], al
lea esi, [edx + ebp]
jmp 0x419166
mov edx, dword [esp + 0x18]
mov esi, edx
mov ecx, dword [esp + 0x10]
mov edi, edx
sub ecx, dword [esp + 0x14]
mov ebp, edx
inc edx
mov dword [esp + 0x48], esi
cmp dword [esp + 0xa0], 0
mov dword [esp + 0x18], edx
mov dword [esp + 0x80], ecx
je 0x419066
mov eax, ecx
shr eax, 8
add eax, 8
add eax, ecx
add eax, edx
cmp eax, dword [esp + 0x24]
ja 0x4191e1
cmp ecx, 0xf
jb 0x4190b7
lea ebx, [ecx - 0xf]
mov byte [edi], 0xf0
cmp ebx, 0xff
jb 0x4190b2
mov eax, 0x80808081
mul ebx
mov eax, dword [esp + 0x18]
mov esi, edx
shr esi, 7
push esi
push 0xff
push eax
call fcn.0041e5b0
mov edx, dword [esp + 0x24]
add esp, 0xc
add edx, esi
nop
sub ebx, 0xff
sub esi, 1
jne 0x4190a0
mov ecx, dword [esp + 0x80]
mov byte [edx], bl
inc edx
jmp 0x4190be
mov al, cl
shl al, 4
mov byte [edi], al
lea esi, [ecx + edx]
push esi
push dword [esp + 0x18]
push edx
call fcn.00416c20
mov eax, dword [esp + 0x1c]
mov ebx, esi
sub eax, dword [esp + 0x4c]
add esp, 0xc
mov ecx, dword [esp + 0x1c]
add ecx, 0xfffffffc
mov word [ebx], ax
add ebx, 2
cmp dword [esp + 0xa0], 0
mov dword [esp + 0x18], ebx
je 0x419108
mov eax, ecx
shr eax, 8
add eax, 6
add eax, ebx
cmp eax, dword [esp + 0x24]
ja 0x4191dd
mov al, byte [ebp]
cmp ecx, 0xf
jb 0x41915e
add al, 0xf
sub ecx, 0xf
mov byte [edi], al
cmp ecx, 0x1fe
jb 0x419143
mov eax, 0x80808081
mul ecx
shr edx, 8
nop dword [eax]
mov word [ebx], 0xffff
sub ecx, 0x1fe
add ebx, 2
sub edx, 1
jne 0x419130
cmp ecx, 0xff
jb 0x419155
sub ecx, 0xff
mov byte [ebx], 0xff
inc ebx
mov byte [ebx], cl
inc ebx
mov dword [esp + 0x18], ebx
jmp 0x419162
add al, cl
mov byte [edi], al
mov esi, dword [esp + 0x54]
mov edi, esi
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff4
mov dword [esp + 0x10], esi
cmp esi, eax
jbe 0x417b00
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0xa0]
sub eax, edi
mov dword [esp + 0x3c], eax
lea ecx, [eax + 0xf0]
mov eax, 0x80808081
mul ecx
mov eax, dword [esp + 0x3c]
lea ecx, [ebp + 5]
shr edx, 7
add edx, eax
cmp esi, 2
cmovne ecx, ebp
test esi, esi
je 0x419252
lea eax, [ebx + 1]
add eax, edx
cmp eax, ecx
jbe 0x41924e
cmp esi, 1
jne 0x41922b
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x74
ret
mov dword [esp + 0x14], edx
jmp 0x4191e5
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
cmp dword [esp + 0xa0], 2
jne 0x4191cd
mov ebx, esi
mov eax, 0x80808081
mov esi, dword [esp + 0x3c]
sub esi, edx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x3c], esi
lea ecx, [esi + 0xf0]
mul ecx
lea ecx, [edi + 5]
mov edi, dword [esp + 0x14]
shr edx, 7
add edx, esi
mov esi, dword [esp + 0xa0]
jmp 0x4191bb
mov edx, dword [esp + 0x14]
jmp 0x4191e9
sub ecx, ebx
mov eax, 0x80808081
dec ecx
mov dword [esp + 0x3c], ecx
lea ecx, [ecx + 0xf0]
mul ecx
mov eax, dword [esp + 0x3c]
shr edx, 7
sub eax, edx
mov dword [esp + 0x3c], eax
jmp 0x419252
mov eax, dword [esp + 0x3c]
lea ebp, [eax + edi]
lea edi, [ebx + 1]
cmp eax, 0xf
jb 0x4192a0
lea ebx, [eax - 0xf]
mov eax, dword [esp + 0x18]
mov byte [eax], 0xf0
cmp ebx, 0xff
jb 0x41929b
mov eax, 0x80808081
mul ebx
mov esi, edx
shr esi, 7
push esi
push 0xff
push edi
call fcn.0041e5b0
add esp, 0xc
add edi, esi
nop dword [eax]
sub ebx, 0xff
sub esi, 1
jne 0x419290
mov byte [edi], bl
inc edi
jmp 0x4192a5
shl al, 4
mov byte [ebx], al
mov ebx, dword [esp + 0x3c]
push ebx
push dword [esp + 0x18]
push edi
call fcn.0041e710
sub ebp, dword [esp + 0x98]
add esp, 0xc
mov eax, dword [esp + 0x94]
sub ebx, dword [esp + 0x90]
mov dword [eax], ebp
lea eax, [edi + ebx]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x74
ret