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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x330
mov dword [esp + 0x254], ecx
call fcn.004860a7
lea esi, [esp + 0x258]
mov edx, 0x6c4590
mov ecx, esi
push 0x20
push eax
call fcn.00406188
pop eax
pop ecx
mov eax, dword [esi + 8]
mov edi, dword [esi + 4]
lea esi, [esp + 0x50]
xor edx, edx
xor ebx, ebx
and dword [esi], 0
mov dword [esi + 4], 1
and dword [esi + 8], 0
mov ecx, esi
mov dword [esp + 0xb4], eax
add eax, edi
mov dword [esp + 0xec], eax
call fcn.0055bdc3
mov ecx, dword [esp + 0xec]
lea eax, [esp + 0x130]
mov dword [esp + 0xb0], edi
mov dword [eax], edi
mov edi, eax
mov dword [edi + 4], ecx
mov ecx, edi
call fcn.004098cd
cmp eax, 0x110000
je 0x413327
test bl, 1
jne 0x413324
mov ecx, esi
mov edx, eax
call fcn.004065b1
inc ebx
jmp 0x413308
lea eax, [esp + 0x74]
mov edx, dword [esp + 0xb0]
lea esi, [esp + 0x200]
movsd xmm0, qword [eax - 0x24]
mov eax, dword [eax - 0x1c]
mov ecx, esi
movsd qword [esp + 0x180], xmm0
mov dword [esp + 0x188], eax
push dword [esp + 0xb4]
call fcn.00434de0
pop eax
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
push 0x596750
push 0x10
call fcn.0040174d
pop ecx
pop ecx
mov esi, edx
mov dword [esp + 0x22c], edx
mov ecx, edx
xor edx, edx
mov ebx, eax
call fcn.00487eba
mov dword [esp + 0x230], eax
mov dword [esp + 0xec], edx
push esi
push ebx
push edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
push 3
pop eax
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
push 0x596760
push eax
call fcn.0040174d
pop ecx
pop ecx
mov ebx, edx
mov ecx, edx
xor edx, edx
mov dword [esp + 0xe8], eax
call fcn.00487eba
mov esi, edx
mov dword [esp + 0xe4], eax
push ebx
push dword [esp + 0xec]
push edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0xe4]
lea eax, [esp + 0x1d8]
mov edx, dword [esp + 0xb4]
mov dword [eax], ecx
mov ecx, dword [esp + 0xb0]
mov dword [eax + 4], esi
mov dword [eax + 8], ebx
push 0x596770
push 0x12
push 0xf
call fcn.0040170e
add esp, 0xc
mov ebx, edx
mov ecx, edx
xor edx, edx
mov dword [esp + 0xe8], eax
call fcn.00487eba
mov esi, edx
mov dword [esp + 0xe4], eax
push ebx
push dword [esp + 0xec]
push edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0xe4]
lea eax, [esp + 0x1a8]
mov edx, dword [esp + 0xb4]
mov dword [eax], ecx
mov ecx, dword [esp + 0xb0]
mov dword [eax + 4], esi
mov dword [eax + 8], ebx
push 0x596780
push 0x20
push 0x1d
call fcn.0040170e
add esp, 0xc
mov ebx, edx
mov ecx, edx
xor edx, edx
mov dword [esp + 0xb0], eax
call fcn.00487eba
mov esi, edx
mov dword [esp + 0xb4], eax
push ebx
push dword [esp + 0xb4]
push edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xb4]
lea edx, [esp + 0xb8]
lea ecx, [esp + 0x1a8]
mov dword [edx], eax
lea eax, [esp + 0x1d8]
mov dword [edx + 4], esi
mov dword [edx + 8], ebx
mov ebx, edx
mov dword [esp + 0x130], eax
mov eax, fcn.004087f4
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], ecx
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], edx
lea edx, [esp + 0xf0]
mov dword [esp + 0x144], eax
mov dword [edx], 0x596790
push 3
pop eax
mov dword [edx + 4], eax
and dword [edx + 0x10], 0
lea esi, [esp + 0x74]
mov dword [edx + 8], edi
mov dword [esp + 0x14], eax
mov dword [edx + 0xc], eax
mov ecx, esi
call fcn.00406419
lea eax, [esp + 0x200]
mov edx, dword [esp + 0x230]
mov ecx, dword [esp + 0xec]
movsd xmm0, qword [eax]
mov eax, dword [eax + 8]
movsd qword [esi - 0x24], xmm0
mov dword [esi - 0x1c], eax
mov dword [esi - 0x18], edx
mov dword [esi - 0x14], ecx
mov edx, dword [esp + 0x22c]
mov ecx, dword [esp + 0x188]
movsd xmm0, qword [esp + 0x180]
mov dword [esi - 0x10], edx
mov dword [esi - 4], ecx
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
movsd qword [esi - 0xc], xmm0
call fcn.00563c9c
lea eax, [esp + 0x1a8]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
call fcn.00563c9c
lea eax, [esp + 0x1d8]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
call fcn.00563c9c
mov ecx, dword [esp + 0x258]
mov edx, dword [esp + 0x25c]
call fcn.00563c9c
mov eax, dword [esi - 0x24]
mov dword [esp + 0xe8], eax
mov eax, dword [esi - 0x20]
mov dword [esp + 0xb0], eax
mov eax, dword [esi - 0x1c]
mov dword [esp + 0x12c], eax
mov eax, dword [esi - 0xc]
mov dword [esp + 0xe4], eax
mov eax, dword [esi - 8]
mov dword [esp + 0xb4], eax
mov eax, dword [esi - 4]
mov dword [esp + 0x244], eax
mov eax, dword [esi]
mov dword [esp + 0x250], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x24c], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x248], eax
call fcn.004860a7
mov ecx, 0x59657f
mov edx, 0x1c2
mov dword [esp + 0x1d4], eax
mov esi, 0x59657f
mov edi, 0x1c2
call fcn.00481c47
test al, al
push 7
pop ebx
je 0x413659
push 0xb
push str._____BEGIN
push esi
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
je 0x413698
mov edx, ebx
jmp 0x41387b
push 6
pop edx
mov ecx, 0x59657f
mov ebx, 0x1c2
test ebx, ebx
je 0x413876
movzx eax, byte [ecx]
inc ecx
cmp eax, 0xa
je 0x413680
test eax, eax
jne 0x413695
jmp 0x413876
lea edi, [ebx - 1]
mov esi, ecx
mov edx, edi
call fcn.00481c47
mov ecx, esi
push 6
pop edx
test al, al
jne 0x413705
dec ebx
jmp 0x413666
add edi, 0xfffffff5
add esi, 0xb
xor eax, eax
xor ebx, ebx
mov ecx, esi
cmp edi, ebx
je 0x413718
movzx edx, byte [ecx + ebx]
mov esi, ecx
mov ecx, edx
add cl, 0xd3
cmp cl, 0xf4
mov ecx, edx
setb ch
add cl, 0x81
cmp cl, 0xaf
setb cl
and cl, ch
cmp cl, 1
jne 0x4136f7
cmp edx, 0x2d
je 0x41371e
test ebx, ebx
je 0x413878
cmp edx, 0x20
je 0x4136e6
cmp edx, 9
jne 0x413878
cmp ebx, 0xffffffff
sete dl
or al, dl
test al, 1
je 0x413700
jmp 0x413878
cmp ebx, 0xffffffff
je 0x413878
inc ebx
mov eax, ecx
jmp 0x4136a2
cmp ebx, 0xc
push 7
pop ebx
mov esi, ecx
jae 0x41363e
jmp 0x413652
mov esi, ecx
mov ebx, edi
jmp 0x413726
cmp ebx, edi
ja 0x414242
sub edi, ebx
lea ecx, [esp + 0xb8]
mov edx, esi
push ebx
call fcn.0043e6d0
pop eax
cmp edi, 5
jb 0x413878
cmp dword [esp + 0xb8], 0
push 4
pop edx
jne 0x413876
mov ecx, esi
add ecx, ebx
cmp byte [ecx], 0x2d
jne 0x413876
cmp byte [ecx + 1], 0x2d
jne 0x413876
cmp byte [ecx + 2], 0x2d
jne 0x413876
cmp byte [ecx + 3], 0x2d
jne 0x413876
cmp byte [ecx + 4], 0x2d
jne 0x413876
mov eax, edi
mov edx, eax
add edx, 0xfffffffb
je 0x413878
mov ebx, eax
mov eax, dword [esp + 0xbc]
mov esi, ecx
mov cl, byte [ecx + 5]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x28], eax
push 0xfffffffffffffffa
pop edi
push 6
pop eax
cmp cl, 0xa
jne 0x413a3d
add esi, eax
add edi, ebx
mov ecx, esi
mov edx, edi
call fcn.00482f99
test eax, eax
mov ebx, edx
cmove ebx, edi
cmovne esi, eax
cmp ebx, 5
jb 0x413a36
cmp byte [ebx + esi - 1], 0x2d
jne 0x413a36
cmp byte [ebx + esi - 2], 0x2d
jne 0x413a36
cmp byte [ebx + esi - 3], 0x2d
jne 0x413a36
cmp byte [ebx + esi - 4], 0x2d
mov dword [esp + 8], esi
jne 0x413a36
mov eax, dword [esp + 8]
cmp byte [eax + ebx - 5], 0x2d
push 7
pop edx
jne 0x41387b
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
lea esi, [esp + 0xc8]
add ebx, 0xfffffffb
mov dword [esi - 0x10], 0x69adf0
mov dword [esi - 0xc], 9
mov dword [esi - 8], eax
mov dword [esi - 4], ecx
push 0xfffffffffffffff0
pop edi
test edi, edi
je 0x413a6d
mov edx, dword [esi - 4]
sub ebx, edx
jb 0x413872
mov eax, dword [esp + 8]
mov ecx, dword [esi - 8]
add esi, 0xfffffff8
add eax, ebx
push edx
push eax
call fcn.0055879c
pop ecx
pop edx
add edi, 8
test al, al
jne 0x413847
push 8
jmp 0x41387a
jmp 0x41387b
push 4
pop edx
mov dword [esp + 0x54], edx
and dword [esp + 0x58], 0
mov dword [esp + 0x5c], ecx
lea edx, [esp + 0x54]
lea ecx, [esp + 0x134]
mov dword [edx - 4], 2
call fcn.00482f65
xor eax, eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x28], 0
inc eax
mov dword [esp + 0x14], eax
xorps xmm0, xmm0
lea ebx, [esp + 0x50]
movaps xmmword [ebx + 0x10], xmm0
movaps xmmword [ebx], xmm0
push 0x20
pop edx
mov ecx, ebx
push 0x5967a8
push dword [esp + 0x130]
push dword [esp + 0xb8]
call fcn.0043613b
add esp, 0xc
lea ecx, [esp + 0xf0]
xorps xmm0, xmm0
movaps xmmword [ecx], xmm0
push 0x10
pop edi
mov edx, edi
push 0x5967b8
push dword [esp + 0x230]
push dword [esp + 0xf4]
call fcn.0043613b
add esp, 0xc
lea ecx, [esp + 0x130]
xorps xmm0, xmm0
mov edx, edi
movaps xmmword [ecx], xmm0
push 0x5967c8
push dword [esp + 0x248]
push dword [esp + 0xbc]
call fcn.0043613b
add esp, 0xc
lea edi, [esp + 0xb8]
and dword [edi + 4], 0
and dword [edi], 0
mov byte [edi + 8], 0
push 9
pop edx
mov ecx, edi
push 0x5967d8
push dword [esp + 0x24c]
mov esi, dword [esp + 0x254]
push esi
call fcn.0043613b
add esp, 0xc
movsd xmm0, qword [ebx + 0x18]
mov ecx, dword [esp + 0x254]
movsd xmm1, qword [ebx + 0x10]
movsd xmm2, qword [ebx]
movsd xmm3, qword [ebx + 8]
movsd xmm6, qword [edi]
mov bl, byte [edi + 8]
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0xf0]
mov edi, dword [esp + 0x14]
movaps xmm4, xmmword [eax]
lea eax, [esp + 0x130]
movaps xmm5, xmmword [eax]
movsd qword [ecx + 0x18], xmm0
movsd qword [ecx + 0x10], xmm1
movsd qword [ecx + 8], xmm3
movsd qword [ecx], xmm2
mov byte [ecx + 0x48], bl
movsd qword [ecx + 0x40], xmm6
mov dword [ecx + 0x4c], edx
mov edx, dword [esp + 0x28]
mov dword [ecx + 0x50], edi
mov dword [ecx + 0x54], edx
movups xmmword [ecx + 0x20], xmm4
movups xmmword [ecx + 0x30], xmm5
mov ecx, dword [esp + 0x1d4]
call fcn.00483df3
mov ecx, dword [esp + 0x250]
mov edx, esi
call fcn.00563c9c
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0xb4]
call fcn.00563c9c
mov ecx, dword [esp + 0x230]
mov edx, dword [esp + 0xec]
call fcn.00563c9c
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xb0]
call fcn.00563c9c
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 7
jmp 0x41387a
cmp edx, 2
jb 0x413a5c
cmp cl, 0xd
jne 0x413a5c
cmp byte [esi + 6], 0xa
jne 0x4137c0
push 0xfffffffffffffff9
pop edi
push 7
pop eax
jmp 0x4137c0
cmp cl, 0xd
push 4
pop edx
je 0x4137c0
jmp 0x41387b
mov ecx, dword [esp + 8]
mov edx, ebx
call fcn.00482f99
test eax, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], eax
je 0x413b7d
cmp dword [esp + 0x10], 0
je 0x413b86
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
and dword [esp + 0x1d8], 0
lea edx, [esp + 0xb8]
lea edi, [esp + 0x1a8]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
mov ecx, edi
mov dword [edx], 1
mov dword [edx + 4], 0x40
call fcn.00436178
cmp dword [edi], 0
je 0x413b90
mov ecx, dword [esp + 0x1ac]
test ecx, ecx
mov eax, ecx
mov dword [esp + 0x20], ecx
je 0x413d39
lea eax, [esp + 0x1a8]
xor esi, esi
mov eax, dword [eax + 8]
mov dword [esp + 8], eax
add esi, dword [esp + 8]
mov byte [esp + 0xc], 1
jb 0x413d44
lea ecx, [esp + 0x1a8]
lea edx, [esp + 0xb8]
call fcn.00436178
cmp dword [esp + 0x1a8], 0
je 0x41413c
mov ebx, dword [esp + 0x1ac]
test ebx, ebx
je 0x413d39
cmp dword [esp + 8], 4
jb 0x413d44
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x1b0]
lea eax, [ecx + eax - 4]
lea ecx, [esp + 0x1d8]
push 4
pop edx
push 0x643c6c
push 4
push eax
call fcn.0043613b
add esp, 0xc
mov dword [esp + 0x20], ebx
mov dword [esp + 8], edi
jmp 0x413af9
mov ecx, dword [esp + 0x10]
jmp 0x413872
mov byte [esp + 0xc], 1
jmp 0x413d44
xor eax, eax
mov esi, dword [esp + 0x18]
lea edx, [esp + 0x50]
xor ecx, ecx
mov byte [edx + 7], cl
and word [edx + 5], 0
mov dword [edx + 8], esi
mov esi, dword [esp + 0x10]
mov dword [edx + 0xc], esi
mov dword [edx + 0x10], 0x6c4590
and dword [edx + 0x14], 0
mov dword [edx + 0x18], eax
mov eax, dword [esp + 0x1c]
and dword [edx + 0x1c], 0
and dword [edx + 0x20], 0
mov byte [edx + 0x26], cl
and word [edx + 0x24], 0
mov dword [edx], 1
mov byte [edx + 4], 0x40
mov dword [edx + 0x28], eax
mov eax, dword [esp + 0x28]
mov dword [edx + 0x2c], eax
push 0xc
pop ecx
lea eax, [esp + 0x130]
mov dword [esp + 0x20], ecx
mov esi, edx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov eax, dword [eax]
cmp eax, 2
je 0x41389f
movsd xmm1, qword [esp + 0x148]
movsd xmm0, qword [esp + 0x140]
movsd xmm2, qword [esp + 0x150]
mov ecx, dword [esp + 0x134]
mov edx, dword [esp + 0x138]
mov esi, dword [esp + 0x13c]
and dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 1
and dword [esp + 0xc0], 0
movsd qword [esp + 0x108], xmm1
movsd xmm1, qword [esp + 0x158]
movsd qword [esp + 0x100], xmm0
movsd qword [esp + 0x110], xmm2
movsd qword [esp + 0x118], xmm1
mov dword [esp + 0xf4], ecx
mov dword [esp + 0xf8], edx
mov dword [esp + 0xfc], esi
mov dword [esp + 0xf0], eax
mov esi, dword [esp + 0x108]
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x11c]
test esi, esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], ecx
je 0x413cc6
lea ecx, [esp + 0xb8]
mov edx, esi
call fcn.0048264f
lea ebx, [esp + 0xb8]
mov edx, esi
mov ecx, ebx
call fcn.0048264f
mov edi, dword [ebx + 4]
mov ebx, dword [ebx + 8]
test esi, esi
je 0x413cf8
lea eax, [edi + ebx]
push esi
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
add ebx, esi
mov dword [esp + 0xc0], ebx
xor ecx, ecx
mov edx, edi
push 0x643c7c
push ebx
call fcn.004fb1bf
pop ecx
pop ecx
mov ecx, dword [esp + 0x104]
mov dword [esp + 8], eax
mov dword [esp + 0x28], edx
or ecx, dword [esp + 0xfc]
jne 0x413d56
mov eax, dword [esp + 0x110]
cmp eax, dword [esp + 0x10c]
jne 0x413d56
xor eax, eax
inc eax
jmp 0x41431e
mov al, byte [esp + 0x1b0]
mov byte [esp + 0xc], al
mov al, byte [esp + 0xc]
mov byte [esp + 0x54], 0
mov byte [esp + 0x55], al
jmp 0x413888
xor eax, eax
mov dword [esp + 0x1c], 0
inc eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x1c]
jbe 0x414207
mov edx, dword [esp + 0x10c]
mov ecx, dword [esp + 0x110]
sub edx, ecx
je 0x413e1b
jb 0x414304
cmp edx, eax
cmovb eax, edx
mov edx, ecx
add edx, eax
jb 0x414304
mov dword [esp + 0x110], edx
push 3
pop edx
cmp ecx, 4
jae 0x415cdb
lea esi, [esp + 0x114]
sub edx, ecx
add ecx, esi
push 0x624fd4
push eax
call fcn.00436160
pop ecx
pop ecx
mov edi, edx
test eax, eax
je 0x414300
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 8]
mov ebx, eax
mov ecx, esi
push 0x643cec
push dword [esp + 0x2c]
call fcn.004fb1bf
pop ecx
pop ecx
mov ecx, eax
push 0x643cfc
push edi
call fcn.0055bdab
pop ecx
pop ecx
mov ecx, eax
push 0x643d0c
push edi
push ebx
call fcn.0043613b
add esp, 0xc
add esi, edi
mov dword [esp + 0x1c], esi
jb 0x414322
cmp dword [esp + 0x104], 0
jne 0x413e43
cmp dword [esp + 0xfc], 0
je 0x413e43
lea ecx, [esp + 0xf0]
call fcn.00482719
cmp al, 2
jne 0x4142f3
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x1c]
jb 0x414322
mov ecx, dword [esp + 0x104]
mov ebx, dword [esp + 0x100]
xor edx, edx
mov edi, ecx
shr edi, 2
push 3
pop esi
div esi
mov edx, 0x6c4590
cmp edi, eax
cmovae edi, eax
mov eax, ecx
lea esi, [edi*4]
sub eax, esi
cmovb esi, ecx
lea ecx, [ebx + edi*4]
cmovbe ecx, edx
mov edx, 0
cmovb eax, edx
test esi, esi
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], eax
je 0x413f0c
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 8]
push 0x643d1c
push dword [esp + 0x2c]
call fcn.004fb1bf
pop ecx
pop ecx
lea edi, [edi + edi*2]
mov ecx, eax
push 0x643d2c
push edi
call fcn.0055bdab
pop ecx
pop ecx
mov edi, edx
lea ecx, [esp + 0x1a8]
lea edx, [esp + 0xf0]
push edi
push eax
push esi
push ebx
call fcn.00482756
add esp, 0x10
cmp dword [esp + 0x1a8], 0
je 0x4142e9
mov eax, dword [esp + 0x1c]
add eax, dword [esp + 0x1ac]
mov dword [esp + 0x1c], eax
jb 0x414322
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x28]
jae 0x413d65
mov ebx, dword [esp + 0x104]
mov eax, dword [esp + 0xfc]
or eax, ebx
jne 0x413f53
mov eax, dword [esp + 0x110]
cmp eax, dword [esp + 0x10c]
je 0x414322
and word [esp + 0x200], 0
mov byte [esp + 0x202], 0
jmp 0x413f6d
and word [esp + 0x200], 0
cmp ebx, 4
mov byte [esp + 0x202], 0
jae 0x41409b
cmp dword [esp + 0xfc], 0
mov edi, dword [esp + 0x100]
je 0x4140a2
and dword [esp + 0x1d8], 0
lea eax, [edi + 4]
cmp ebx, 5
mov ecx, 0x6c4590
cmovb eax, ecx
mov ecx, 0
mov dword [esp + 0x100], eax
mov eax, ebx
sub eax, 4
cmovb eax, ecx
mov dword [esp + 0x104], eax
push 4
pop eax
cmovae ebx, eax
lea ecx, [esp + 0x1d8]
mov edx, ebx
push 0x643c8c
call fcn.00482579
pop ecx
mov ecx, eax
push 0x643c9c
push ebx
push edi
call fcn.0043613b
add esp, 0xc
lea ecx, [esp + 0xf0]
call fcn.00482719
cmp al, 2
jne 0x414316
push 4
pop edi
mov eax, dword [esp + 0x104]
mov esi, dword [esp + 0x100]
sub edi, ebx
mov edx, eax
lea ecx, [esi + edi]
sub edx, edi
cmovb edi, eax
mov eax, 0x6c4590
cmovbe ecx, eax
mov eax, 0
cmovb edx, eax
mov dword [esp + 0x100], ecx
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x104], edx
mov edx, ebx
push 0x643cac
call fcn.004826e8
pop ecx
mov ecx, eax
push 0x643cbc
push edi
call fcn.0055bdab
pop ecx
pop ecx
mov ecx, eax
push 0x643ccc
push edi
push esi
call fcn.0043613b
add esp, 0xc
add edi, ebx
jb 0x414254
lea ecx, [esp + 0x1d8]
mov edx, edi
push 0x643cdc
call fcn.00482638
pop ecx
mov edi, edx
lea ecx, [esp + 0x1a8]
lea edx, [esp + 0xf0]
push 3
lea esi, [esp + 0x204]
push esi
push edi
push eax
jmp 0x4140eb
mov edi, dword [esp + 0x100]
lea eax, [edi + 4]
cmp ebx, 5
mov ecx, 0x6c4590
cmovb eax, ecx
mov ecx, 0
mov dword [esp + 0x100], eax
mov eax, ebx
sub eax, 4
cmovb eax, ecx
mov dword [esp + 0x104], eax
push 4
pop eax
lea ecx, [esp + 0x1a8]
lea edx, [esp + 0xf0]
cmovae ebx, eax
push 3
lea eax, [esp + 0x204]
push eax
push ebx
push edi
call fcn.00482756
add esp, 0x10
mov eax, dword [esp + 0x1a8]
test eax, eax
je 0x41430d
mov edx, dword [esp + 0x1ac]
cmp edx, 3
ja 0x414254
and dword [esp + 0x110], 0
mov dword [esp + 0x10c], edx
lea ecx, [esp + 0x114]
push 0x624fb4
push edx
push eax
call fcn.0043613b
add esp, 0xc
jmp 0x413d65
mov eax, esi
and eax, 3
push 4
pop ecx
cmove eax, ecx
sub esi, eax
mov dword [esp + 0x30], esi
jb 0x413d44
mov edi, eax
mov eax, dword [esp + 8]
and word [esp + 0x200], 0
mov byte [esp + 0x202], 0
sub eax, edi
jae 0x4141ac
sub edi, dword [esp + 8]
mov byte [esp + 0xc], 1
cmp edi, 4
ja 0x413d44
mov esi, edi
lea edi, [eax + 4]
lea ecx, [esp + eax + 0x1dc]
xor edx, edx
cmp esi, edx
je 0x41425b
cmp eax, 0xfffffffc
jb 0x4146a2
mov bl, byte [ecx + edx]
mov byte [esp + edx + 0x1d8], bl
inc edx
jmp 0x41418e
mov edx, dword [esp + 0x20]
lea ebx, [esp + 0x1a8]
mov ecx, ebx
add edx, eax
push 3
lea eax, [esp + 0x204]
push eax
push edi
call fcn.00481c80
add esp, 0xc
cmp dword [ebx], 0
je 0x4142dd
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x1ac]
mov byte [esp + 0xc], 1
mov eax, esi
and esi, 3
shr eax, 2
lea edx, [eax + eax*2]
lea eax, [esi + esi*2]
shr eax, 2
add eax, edx
add eax, ecx
jae 0x413b92
jmp 0x413d44
mov eax, dword [esp + 0x108]
sub eax, dword [esp + 0x28]
jb 0x414322
cmp dword [esp + 8], 0
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x108], eax
mov dword [esp + 0x10], ecx
je 0x414322
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x1c], eax
jmp 0x414352
push 0x23
pop edx
mov ecx, str.assertion_failed:_mid___self.len__C:Users_admin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_twox_hash_1.6.3_src_sixty_four.rs7
push 0x643f10
call fcn.0043a9e0
mov al, 1
jmp 0x41431b
mov ebx, esi
lea ecx, [esp + 0x1d8]
mov edx, esi
push 0x643c1c
call fcn.004826e8
pop ecx
mov ecx, eax
push 0x643c2c
mov esi, dword [esp + 0xc]
push esi
call fcn.0055bdab
pop ecx
pop ecx
mov ecx, eax
push 0x643c3c
push esi
push dword [esp + 0x28]
call fcn.0043613b
add esp, 0xc
add ebx, esi
jb 0x413d44
lea ecx, [esp + 0x1d8]
mov edx, ebx
push 0x643c4c
call fcn.00482638
pop ecx
lea esi, [esp + 0x1a8]
mov ebx, edx
mov edx, eax
mov ecx, esi
push 3
lea eax, [esp + 0x204]
push eax
push ebx
call fcn.00481c80
add esp, 0xc
cmp dword [esi], 0
jne 0x4141d7
mov al, byte [esp + 0x1ac]
jmp 0x413d40
movzx eax, byte [esp + 0x1ac]
jmp 0x41431e
xor ecx, ecx
test al, al
setne cl
mov dword [esp + 0x10], ecx
jmp 0x414322
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x10]
movzx eax, al
jmp 0x41431e
mov al, byte [esp + 0x1ac]
jmp 0x41431b
test al, al
setne al
movzx eax, al
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xb8]
lea esi, [esp + 0x130]
lea edx, [esp + 0x50]
mov ecx, esi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
mov byte [edx + 1], al
mov byte [edx], 0
call fcn.00482f65
cmp byte [esi], 0xa
jne 0x4143f2
mov ebx, dword [esp + 0xc0]
mov eax, dword [esp + 0xbc]
cmp ebx, 0x10000000
mov dword [esp + 0x28], eax
jae 0x414651
mov eax, dword [esp + 0x28]
lea edx, [esp + 0xf0]
lea esi, [esp + 0x50]
mov dword [edx + 8], ebx
mov ecx, esi
mov dword [esp + 0xb8], eax
xor eax, eax
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], ebx
and dword [esp + 0xc4], 0
mov byte [esp + 0xc8], al
movsd xmm0, qword [esp + 0xb8]
movsd qword [edx], xmm0
mov byte [edx + 0x10], al
and dword [edx + 0xc], 0
call fcn.00446733
cmp dword [esi], 2
jne 0x414402
lea esi, [esp + 0x50]
mov edi, dword [esi + 4]
mov edx, dword [esi + 8]
mov ecx, esi
push 9
call fcn.00446b4c
pop eax
cmp dword [esi], 2
jne 0x414425
cmp edi, 0x80
jae 0x41444f
push 2
pop eax
mov dword [esp + 0x14], eax
jmp 0x41445b
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0x1c]
jmp 0x414659
lea esi, [esp + 0x5c]
lea eax, [esp + 0x13c]
mov edx, dword [esi - 8]
mov ebx, dword [esi - 4]
push 0xa
pop ecx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dword [eax - 4], ebx
mov dword [eax - 8], edx
jmp 0x414651
lea eax, [esp + 0x57]
lea edx, [esp + 0x137]
mov cl, byte [eax - 1]
movzx esi, word [eax - 3]
mov byte [edx - 1], cl
mov word [edx - 3], si
push 0x2d
push eax
push edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x414651
cmp edi, 0x100
jae 0x414663
add dword [esp + 0x14], edi
jb 0x41463e
cmp dword [esp + 0x14], 0xfffffff
ja 0x41463e
lea esi, [esp + 0x130]
lea edx, [esp + 0xb8]
mov ecx, esi
push dword [esp + 0x14]
call fcn.004464f9
pop eax
cmp dword [esi], 2
jne 0x414651
cmp byte [esp + 0xc8], 0
jne 0x414651
mov eax, dword [esp + 0xc4]
cmp dword [esp + 0xc0], eax
ja 0x414651
push 0xa
pop edx
mov ecx, 0x5936a2
push dword [esp + 0x18]
push dword [esp + 0x10]
call fcn.0055d636
pop ecx
pop edx
test al, al
je 0x414690
mov eax, ebx
mov edi, dword [esp + 0x28]
lea edx, [esp + 0x50]
shr eax, 8
mov ecx, eax
mov word [edx + 1], ax
shr ecx, 0x10
mov byte [edx + 3], cl
mov byte [edx + 4], bl
lea edx, [esp + 0x1a8]
mov dword [edx], edi
mov byte [edx + 4], bl
lea ebx, [esp + 0x50]
mov edi, dword [ebx + 1]
mov dword [edx + 5], edi
mov byte [edx + 0xb], cl
mov word [edx + 9], ax
and dword [edx + 0xc], 0
mov ecx, ebx
mov byte [edx + 0x10], 0
call fcn.00446733
cmp dword [ebx], 2
jne 0x4146b3
lea ebx, [esp + 0x50]
mov edi, dword [ebx + 4]
mov edx, dword [ebx + 8]
mov ecx, ebx
push 9
call fcn.00446b4c
pop eax
cmp dword [ebx], 2
jne 0x414727
lea ebx, [esp + 0x50]
lea edx, [esp + 0x1a8]
mov ecx, ebx
push edi
call fcn.00483d69
pop eax
cmp dword [ebx], 2
jne 0x414af0
lea ebx, [esp + 0x50]
lea edx, [esp + 0x200]
mov eax, dword [ebx + 0xc]
movsd xmm0, qword [ebx + 4]
mov ecx, ebx
movsd qword [edx], xmm0
mov dword [edx + 8], eax
call fcn.004835ac
mov eax, dword [ebx]
cmp eax, 2
mov dword [esp + 0x10], eax
jne 0x414b5a
lea ebx, [esp + 0x50]
mov edi, dword [ebx + 4]
mov edx, dword [ebx + 8]
mov ecx, ebx
push 9
call fcn.00446b4c
pop eax
mov eax, dword [ebx]
cmp eax, 2
mov dword [esp + 0x10], eax
jne 0x414b5a
mov eax, dword [esp + 0x204]
xor ecx, ecx
mov dword [esp + 0x24], 0
mov edx, edi
sub eax, dword [esp + 0x208]
cmovb eax, ecx
cmp eax, edi
jae 0x414df1
mov ecx, eax
mov eax, dword [esp + 0x200]
mov eax, dword [eax + 0xc]
add edi, eax
mov dword [esp + 8], eax
setb al
mov dword [esp + 0x18], edi
cmp edi, 0xfffffff
push 0xc
pop edx
mov dword [esp + 0x30], edx
ja 0x414fdb
test al, al
jne 0x414fdb
add ecx, dword [esp + 8]
setb al
mov ebx, ecx
cmp ecx, 0xfffffff
ja 0x4150d1
test al, al
jne 0x4150d1
xor eax, eax
inc eax
mov dword [esp + 0x10], eax
push 3
pop eax
mov dword [esp + 0x30], eax
jmp 0x414bb5
mov eax, dword [esp + 0x14]
mov dword [esp + 0x134], eax
mov byte [esp + 0x138], 0xc
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
call fcn.004511a2
jmp 0x41389f
cmp edi, 0x10000
jae 0x414672
push 4
jmp 0x4143eb
cmp edi, 0x1000000
jae 0x414681
push 5
jmp 0x4143eb
cmp edi, 0x10000000
jae 0x414649
push 6
jmp 0x4143eb
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
call fcn.00563c9c
jmp 0x41389f
add edi, edx
push 4
pop edx
mov ecx, edi
push 0x643c5c
call fcn.0043a050
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x54]
mov al, byte [esp + 0x58]
mov ah, byte [esp + 0x5b]
movsd xmm0, qword [esp + 0x64]
movsd xmm2, qword [esp + 0x6c]
movsd xmm1, qword [esp + 0x74]
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x188], ecx
movzx ecx, word [esp + 0x59]
mov dword [esp + 0x180], edx
mov byte [esp + 0x184], al
mov byte [esp + 0x187], ah
mov eax, dword [esp + 0x7c]
movsd qword [esp + 0xb8], xmm0
movsd qword [esp + 0xc0], xmm2
movsd qword [esp + 0xc8], xmm1
mov dword [esp + 0x24], eax
mov word [esp + 0x185], cx
jmp 0x414792
mov al, byte [esp + 0x56]
movsd xmm1, qword [esp + 0x64]
mov ebx, dword [esp + 0x60]
movsd xmm2, qword [esp + 0x6c]
movsd xmm0, qword [esp + 0x57]
mov byte [esp + 0x182], al
movzx eax, word [esp + 0x54]
movsd qword [esp + 0xb8], xmm1
movsd xmm1, qword [esp + 0x74]
movsd qword [esp + 0xc0], xmm2
mov word [esp + 0x180], ax
mov al, byte [esp + 0x5f]
movsd qword [esp + 0x183], xmm0
movsd qword [esp + 0xc8], xmm1
mov byte [esp + 0x18b], al
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x185]
movzx esi, word [esp + 0x189]
mov ah, byte [esp + 0x184]
mov al, byte [esp + 0xb8]
mov dword [esp + 0x30], ecx
movzx ecx, byte [esp + 0x18b]
shl ecx, 0x10
or esi, ecx
mov ecx, dword [esp + 0xb9]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
shr ecx, 8
cmp ah, 9
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xbd]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0xc1]
mov dword [esp + 8], ecx
mov cl, byte [esp + 0xc5]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc6]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0xcb]
mov dword [esp + 0x38], ecx
mov cl, byte [esp + 0xca]
mov dword [esp + 0xc], ecx
mov cl, byte [esp + 0xcf]
mov dword [esp + 0x20], ecx
jne 0x414874
mov edx, dword [esp + 8]
movzx ecx, al
mov eax, dword [esp + 0x10]
and esi, 0xffffff
shld ecx, ebx, 0x18
shl ebx, 0x18
or ebx, esi
mov esi, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], ebx
shr edx, 8
mov ebx, eax
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x24]
shr ebx, 8
mov dword [esp + 0x48], edx
jmp 0x4148f5
mov ecx, dword [esp + 0x180]
mov dword [esp + 0x40], ebx
mov dword [esp + 0xac], ecx
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
movzx edi, ah
mov ebx, dword [esp + 0x2c]
shld esi, edx, 8
shl edx, 8
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x34]
or edx, edi
mov edi, dword [esp + 8]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x34], edi
mov edi, ebx
shr edi, 0x18
mov dword [esp + 8], edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0xac]
shr ecx, 0x18
mov dword [esp + 0x18], ecx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edx
shl ebx, 8
movzx edi, al
or edi, ebx
and ebx, 0xff000000
xor eax, eax
inc eax
mov dword [esp + 0xac], eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
call fcn.00563c9c
cmp dword [esp + 0xac], 0
jne 0x41389f
mov ecx, dword [esp + 0x10]
movzx eax, byte [esp + 8]
mov edx, dword [esp + 0x2c]
and edi, 0xffffff
movsd xmm1, qword [esp + 0x298]
movsd xmm0, qword [esp + 0x290]
movsd xmm2, qword [esp + 0x2a0]
or ebx, edi
shl ecx, 8
or eax, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x18]
mov byte [esp + 0x68], al
mov eax, dword [esp + 0x34]
mov dword [esp + 0x69], eax
mov eax, dword [esp + 0xc]
mov byte [esp + 0x6d], al
mov eax, dword [esp + 0x38]
mov dword [esp + 0x6e], eax
mov eax, dword [esp + 0x20]
mov byte [esp + 0x72], al
mov eax, dword [esp + 0x48]
mov dword [esp + 0x73], eax
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x77], al
mov eax, dword [esp + 0x24]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x14]
mov byte [esp + 0x7c], al
mov eax, dword [esp + 0x44]
mov word [esp + 0x7d], ax
shr eax, 0x10
mov byte [esp + 0x7f], al
movsd qword [esp + 0x88], xmm1
movsd xmm1, qword [esp + 0x2a8]
movsd qword [esp + 0x80], xmm0
movsd qword [esp + 0x90], xmm2
movsd qword [esp + 0x98], xmm1
mov esi, dword [esp + 0x70]
cmp esi, 5
cmovae esi, ecx
test esi, esi
je 0x414a56
lea ecx, [esp + 0x50]
call fcn.004097da
test edx, edx
je 0x4169d7
test eax, eax
je 0x4169d7
mov ecx, dword [eax + edx*8 - 4]
bsr eax, dword [eax + edx*8 - 8]
push 0x3f
pop edx
cmove eax, edx
bsr edx, ecx
xor eax, 0x1f
xor edx, 0x1f
add eax, 0x20
test ecx, ecx
cmove edx, eax
shl esi, 6
sub esi, edx
cmp esi, 0x1000
ja 0x414ac6
lea ecx, [esp + 0x78]
call fcn.004097da
shl edx, 3
xor ecx, ecx
xor edi, edi
xor ebx, ebx
test edx, edx
je 0x414a80
test cl, 1
jne 0x414a80
add edi, dword [eax]
mov cl, 1
adc ebx, dword [eax + 4]
add eax, 8
add edx, 0xfffffff8
jmp 0x414a68
test edx, edx
jne 0x414ac6
lea ecx, [esp + 0x78]
call fcn.004097da
lea ecx, [esp + 0x50]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edx
call fcn.004097da
mov esi, edx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
push esi
push eax
call fcn.0047f2ec
pop ecx
pop edx
cmp al, 2
jb 0x414ac6
lea ecx, [esp + 0x50]
call fcn.0040982a
test al, al
je 0x414d05
xor ecx, ecx
xor eax, eax
inc eax
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x50]
mov dword [esp + 0x28], eax
call fcn.0047e08d
lea ecx, [esp + 0x78]
call fcn.0047e08d
jmp 0x4138b6
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x5c]
movsd xmm0, qword [esp + 0x54]
mov ebx, dword [esp + 0x60]
movsd xmm1, qword [esp + 0x64]
movsd xmm3, qword [esp + 0x6c]
movsd xmm2, qword [esp + 0x74]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x138], eax
movsd qword [esp + 0xb8], xmm1
movsd qword [esp + 0xc0], xmm3
movsd qword [esp + 0xc8], xmm2
movsd qword [esp + 0x180], xmm0
mov dword [esp + 0x188], eax
mov dword [esp + 0x14], ecx
jmp 0x41479d
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x60]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 8]
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x208]
mov dword [esp + 0x24], eax
test edx, edx
mov dword [esp + 0x14], edi
cmove esi, edx
add esi, ecx
setae al
cmp esi, 0x10000000
mov dword [esp + 8], esi
setb cl
and cl, al
movzx eax, cl
mov dword [esp + 0x10], eax
mov al, 0x18
mov dword [esp + 0x48], eax
cmp byte [esp + 0x48], 0x18
je 0x414f73
lea esi, [esp + 0x50]
lea edx, [esp + 0x200]
mov ecx, esi
call fcn.004835ac
cmp dword [esi], 2
jne 0x414cdf
lea esi, [esp + 0x50]
mov edi, dword [esi + 4]
mov edx, dword [esi + 8]
mov ecx, esi
push 2
call fcn.00446b4c
pop eax
cmp dword [esi], 2
jne 0x414ea1
dec edi
cmp edi, 0xfffffff
mov eax, edi
mov dword [esp + 0x4c], edi
ja 0x414fe8
lea esi, [esp + 0x50]
lea edx, [esp + 0x200]
mov ecx, esi
call fcn.00483cc2
cmp dword [esi], 2
jne 0x41511e
lea esi, [esp + 0x50]
lea edx, [esp + 0x200]
movzx eax, byte [esi + 4]
mov ecx, esi
mov dword [esp + 0xe0], eax
push dword [esp + 0x4c]
call fcn.00483d18
pop eax
cmp dword [esi], 2
jne 0x415b30
xor esi, esi
push 0x17
pop eax
cmp byte [esp + 0xe0], 7
mov edx, 0x200
ja 0x414cd2
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
cmp dword [esp + 0xe0], 0
mov dword [esp + 0x228], ecx
mov dword [esp + 0x4c], edi
je 0x415f7b
cmp dword [esp + 0x4c], 0
jne 0x415f7b
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x20], eax
jmp 0x414ff3
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x44], edx
mov dword [esp + 0x20], eax
mov edx, ecx
mov dword [esp + 0x4c], ecx
shr ecx, 8
jmp 0x414ecc
lea ecx, [esp + 0x78]
call fcn.0040982a
test al, al
jne 0x414ac6
mov eax, edi
cmp edi, 2
mov eax, ebx
sbb eax, 0
jb 0x414ac6
xor eax, eax
inc eax
xor ecx, ecx
dec ecx
cmp ecx, edi
sbb eax, ebx
jb 0x414ac6
lea ecx, [esp + 0x50]
call fcn.004f481e
mov dword [esp + 0x1c], eax
add eax, 0xfffffff5
cmp eax, dword [esp + 0x12c]
jb 0x414ac6
mov esi, dword [esp + 0x1c]
xor edx, edx
inc edx
mov dword [esp + 0x14], edx
mov ecx, esi
call fcn.00426eaa
mov edi, edx
mov ecx, edx
mov dword [esp + 0x10], eax
mov edx, esi
push 0x593798
push 1
call fcn.0049789d
pop ecx
pop edx
mov byte [eax], 2
mov eax, esi
sub eax, dword [esp + 0x12c]
mov dword [esp + 0x20], eax
lea edx, [eax - 1]
push 2
pop ecx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
push 0x5937a8
push esi
mov dword [esp + 0x30], edi
push edi
call fcn.004fb18f
add esp, 0xc
mov ecx, dword [esp + 0x1d4]
mov ebx, edx
mov edi, eax
mov edx, eax
push ebx
call fcn.00486259
pop eax
mov esi, edi
add esi, ebx
cmp edi, esi
je 0x41501a
mov ebx, edi
inc edi
cmp byte [ebx], 0
jne 0x414dc6
xor eax, eax
test al, al
jne 0x414dc6
mov ecx, dword [esp + 0x1d4]
mov edx, ebx
push 1
call fcn.00486259
pop eax
mov al, byte [ebx]
jmp 0x414dd8
lea edx, [esp + 0x1d8]
lea eax, [esp + 0x200]
lea ebx, [esp + 0x50]
mov dword [edx + 4], edi
mov dword [edx], eax
and dword [edx + 8], 0
mov ecx, ebx
call fcn.004837ba
mov ecx, dword [ebx]
cmp ecx, 2
jne 0x415a60
lea ebx, [esp + 0x50]
mov edi, dword [ebx + 4]
mov edx, dword [ebx + 8]
mov ecx, ebx
push 5
call fcn.00446b4c
pop eax
mov ecx, dword [ebx]
cmp ecx, 2
jne 0x4150e2
xorps xmm0, xmm0
and dword [esp + 0x113], 0
mov eax, edi
movaps xmmword [esp + 0x100], xmm0
and dword [esp + 0x10f], 0
cmp edi, 0x27
movaps xmmword [esp + 0xf0], xmm0
jbe 0x4158ea
mov esi, 0x500
push 6
pop eax
mov dword [esp + 0x14], eax
xor ecx, ecx
mov dword [esp + 0x24], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0xac], 0
jmp 0x416004
movzx ecx, byte [esp + 0x57]
movzx edx, word [esp + 0x55]
mov al, byte [esp + 0x54]
mov esi, dword [esp + 0x58]
mov ebx, dword [esp + 0x60]
shl ecx, 0x10
mov dword [esp + 0x4c], eax
mov dword [esp + 0x20], esi
or ecx, edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x64]
mov esi, ebx
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x14], edx
mov edx, 0xffffff00
and esi, edx
and eax, edx
and edx, dword [esp + 0x20]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x44]
mov dword [esp + 0x18], eax
shr esi, 8
movzx edi, byte [esp + 0x4c]
mov eax, dword [esp + 0x44]
shl ecx, 8
shl esi, 8
or edi, ecx
mov ecx, 0xff
and eax, ecx
mov dword [esp + 8], edi
mov edi, dword [esp + 0x20]
and ebx, ecx
or eax, esi
mov esi, dword [esp + 0xc]
or ebx, dword [esp + 0x10]
and edi, ecx
and esi, ecx
or edi, edx
or esi, dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], edi
mov dword [esp + 0xc], esi
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], edx
mov dword [esp + 0x188], ecx
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], ecx
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0xc0], edx
mov dword [esp + 0xc4], ecx
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], ecx
jmp 0x41479d
mov eax, dword [esp + 0x18]
mov dword [esp + 8], eax
jmp 0x4150d5
mov ecx, dword [esp + 0x4c]
xor edx, edx
xor esi, esi
shr ecx, 8
mov dword [esp + 0x44], 0
mov dword [esp + 0x10], 0
xor ebx, ebx
mov dword [esp + 0x18], 0
mov dword [esp + 0xc], 0
jmp 0x414f31
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov ecx, edi
mov edx, esi
push 0x5937b8
push dword [esp + 0x10]
call fcn.0049789d
pop ecx
pop edx
mov byte [eax], 0
mov ecx, edi
mov edx, esi
push 0x5937c8
push dword [esp + 0x24]
call fcn.00409cb7
pop ecx
pop ecx
mov ecx, eax
push 0x5937d8
push dword [esp + 0x130]
push dword [esp + 0xb8]
call fcn.0043613b
add esp, 0xc
mov eax, dword [esp + 0x10]
test esi, esi
mov dword [esp + 0x284], eax
mov dword [esp + 0x288], edi
mov dword [esp + 0x28c], esi
je 0x41516e
mov esi, dword [esp + 0x1c]
xor edx, edx
mov ecx, esi
call fcn.00487eba
mov edi, eax
mov ebx, edx
push esi
push dword [esp + 0x2c]
push edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, ebx
mov edx, esi
call fcn.00406248
lea ecx, [esp + 0xb8]
mov edx, ebx
push esi
call fcn.00480d45
pop eax
mov ecx, edi
mov edx, ebx
call fcn.00563c9c
jmp 0x415217
mov dword [esp + 8], ebx
mov dword [esp + 0x10], 0
jmp 0x414bb5
movzx eax, byte [esp + 0x56]
movzx edx, word [esp + 0x54]
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
shl eax, 0x10
mov dword [esp + 0x18], edi
and edi, 0xff000000
mov dword [esp + 0x14], esi
and esi, 0xffffff00
or edx, eax
mov al, byte [esp + 0x57]
mov dword [esp + 0x10], edi
mov dword [esp + 8], edx
jmp 0x415a8b
movzx eax, byte [esp + 0x57]
movzx ecx, word [esp + 0x55]
mov edi, dword [esp + 0x60]
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
shl eax, 0x10
mov ebx, edi
mov dword [esp + 0x20], edx
mov dword [esp + 0x44], esi
shr esi, 8
or ecx, eax
mov eax, 0xffffff00
and edi, eax
and edx, eax
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x64]
and eax, edi
mov dword [esp + 0xc], edi
mov dword [esp + 0x18], eax
mov al, byte [esp + 0x54]
mov dword [esp + 0x4c], eax
jmp 0x415b71
lea esi, [esp + 0x130]
lea edx, [esp + 0xb8]
mov dword [edx], 4
and dword [edx + 4], 0
and dword [esi + 0x20], 0
mov ecx, esi
mov dword [edx + 8], 2
call fcn.0047de13
push 0xa
pop ecx
lea edi, [esp + 0xf0]
rep movsd dword es:[edi], dword [esi]
push 4
pop ebx
xor ecx, ecx
mov edx, ebx
call fcn.00453deb
lea edi, [esp + 0x130]
push 0xa
pop ecx
lea esi, [esp + 0xf0]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x130]
call fcn.004097da
test edx, edx
je 0x415204
test eax, eax
je 0x415204
mov ecx, dword [eax + edx*8 - 8]
or ecx, dword [eax + edx*8 - 4]
jne 0x415204
cmp dword [esp + 0x150], 5
push 0x20
pop eax
cmovae eax, ebx
mov ecx, dword [esp + eax + 0x130]
test ecx, ecx
je 0x4151c3
dec ecx
mov dword [esp + eax + 0x130], ecx
jmp 0x4151c3
push 0xa
pop ecx
lea edi, [esp + 0xb8]
lea esi, [esp + 0x130]
rep movsd dword es:[edi], dword [esi]
push 0xa
pop ecx
lea edi, [esp + 0x2d8]
lea esi, [esp + 0xb8]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x70]
cmp eax, 5
mov dword [esp + 0xc], eax
jb 0x41523f
mov eax, dword [esp + 0x54]
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 0
je 0x416a2a
lea ecx, [esp + 0x50]
call fcn.00480e53
test al, al
je 0x4152fd
lea ecx, [esp + 0x50]
xor edx, edx
push 0x643264
call fcn.0047e392
pop ecx
test byte [eax], 1
je 0x416a57
lea ecx, [esp + 0x50]
xor ebx, ebx
xor edx, edx
push 0x6431a4
call fcn.0047e392
pop ecx
mov ecx, dword [eax]
mov edi, dword [eax + 4]
and dword [esp + 0xbc], 0
mov eax, ecx
and eax, 1
test cl, 1
mov dword [esp + 0xb8], eax
je 0x416a69
push 2
pop eax
sub eax, ecx
sbb ebx, edi
add ecx, 0xffffffff
mov dword [esp + 0x20], eax
adc edi, 0xffffffff
xor eax, eax
inc eax
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], 0x3f
ja 0x4153a9
mov eax, ecx
mov esi, dword [esp + 0x20]
imul edi, ecx
mul ecx
add edx, edi
mov ecx, eax
inc eax
add edi, edx
imul ebx, eax
mul esi
imul esi, edi
add edx, ebx
mov ebx, esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
add ebx, edx
add esi, esi
mov dword [esp + 0x1c], esi
jmp 0x4152c2
lea ecx, [esp + 0x180]
call fcn.0047e137
mov eax, dword [esp + 0x98]
cmp eax, 5
jb 0x415319
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x415cc6
lea eax, [esp + 0x50]
lea edx, [esp + 0x2d8]
lea ecx, [esp + 0x200]
push eax
call fcn.00481232
pop eax
lea ecx, [esp + 0x1d8]
lea edx, [esp + 0x78]
call fcn.0047e012
lea ebx, [esp + 0xb8]
lea ecx, [esp + 0x1d8]
call fcn.0040982a
test al, al
je 0x415bb1
lea edi, [esp + 0x200]
lea esi, [esp + 0xf0]
mov ecx, esi
mov edx, edi
push edi
call fcn.0047f5b5
pop eax
lea eax, [esp + 0x50]
mov ecx, ebx
mov edx, esi
push eax
call fcn.00480e8e
pop eax
mov ecx, edi
call fcn.0047e08d
push 0xa
pop ecx
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x1d8]
call fcn.004816c4
jmp 0x415351
xor eax, eax
neg dword [esp + 0x20]
lea esi, [esp + 0x300]
lea edx, [esp + 0x2d8]
mov ecx, esi
sbb eax, ebx
mov dword [esp + 0x28], eax
call fcn.0047e012
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 4]
cmp ecx, 5
mov edx, ecx
cmovae edx, eax
cmp edx, dword [esp + 0xc]
jbe 0x4153f6
lea esi, [esp + 0x300]
lea edx, [esp + 0x50]
mov ecx, esi
call fcn.00480e5f
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x20]
cmp ecx, 5
cmovb eax, ecx
cmp eax, dword [esp + 0xc]
jae 0x415412
mov edx, dword [esp + 0xc]
lea ecx, [esp + 0x300]
call fcn.0047e478
lea ebx, [esp + 0x258]
mov ecx, ebx
call fcn.0047e137
push 0xa
pop ecx
lea edx, [esp + 0xf0]
mov esi, ebx
mov edi, edx
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0xb8]
mov eax, dword [esp + 0xc]
mov ecx, esi
shl eax, 7
push eax
call fcn.00480af4
pop eax
lea eax, [esp + 0x50]
mov ecx, ebx
mov edx, esi
push eax
call fcn.00480e8e
pop eax
mov eax, dword [ebx + 0x20]
mov edi, ebx
cmp eax, 5
jb 0x415467
mov eax, dword [esp + 0x25c]
cmp eax, dword [esp + 0xc]
jae 0x41547d
mov edx, dword [esp + 0xc]
lea ecx, [esp + 0x258]
call fcn.0047e478
lea esi, [esp + 0x180]
mov ecx, esi
call fcn.0047e137
mov edx, dword [esp + 0xc]
mov ecx, esi
call fcn.0047e478
push 8
pop ecx
mov edx, 0x280
call fcn.00425bef
test eax, eax
je 0x416a7f
lea ecx, [esp + 0x234]
lea esi, [esp + 0x200]
mov dword [ecx], 0x10
mov dword [ecx + 4], eax
and dword [ecx + 8], 0
mov ecx, esi
call fcn.0047f351
mov ebx, dword [esp + 0xc]
lea edx, [esp + 0x180]
mov ecx, esi
push ebx
push dword [esp + 0x2c]
push dword [esp + 0x28]
lea eax, [esp + 0x5c]
push eax
push edi
call fcn.00480ea6
add esp, 0x14
push 0xa
pop ecx
lea edx, [esp + 0xf0]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x234]
call fcn.004811d7
lea esi, [esp + 0x1d8]
mov ecx, esi
call fcn.0047f351
lea edx, [esp + 0x300]
mov ecx, esi
push ebx
push dword [esp + 0x2c]
push dword [esp + 0x28]
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x268]
push eax
call fcn.00480ea6
add esp, 0x14
lea edx, [esp + 0xf0]
push 0xa
pop ecx
mov edi, edx
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x234]
call fcn.004811d7
push 0xe
pop eax
mov dword [esp + 0x10], eax
sub dword [esp + 0x10], 1
jb 0x415609
mov ebx, dword [esp + 8]
lea ecx, [esp + 0xb8]
lea eax, [ebx + 1]
mov dword [esp + 0x1c], eax
call fcn.0047f351
mov esi, dword [esp + 0x238]
mov edi, dword [esp + 0x23c]
dec ebx
mov ecx, esi
mov edx, edi
push 0x6432a4
push ebx
call fcn.00481206
pop ecx
pop edx
mov dword [esp + 8], eax
mov ecx, esi
mov edx, edi
push 0x6432b4
push 1
call fcn.00481206
pop ecx
pop edx
mov edx, dword [esp + 8]
lea ebx, [esp + 0xb8]
mov ecx, ebx
push dword [esp + 0xc]
push dword [esp + 0x2c]
push dword [esp + 0x28]
lea esi, [esp + 0x5c]
push esi
push eax
call fcn.00480ea6
add esp, 0x14
push 0xa
pop ecx
lea edx, [esp + 0xf0]
mov esi, ebx
mov edi, edx
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x234]
call fcn.004811d7
mov eax, dword [esp + 0x1c]
mov dword [esp + 8], eax
jmp 0x415561
mov ecx, dword [esp + 0x238]
mov edx, dword [esp + 0x23c]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x18], edx
push 0x643274
push 0
call fcn.00481206
pop ecx
pop edx
lea esi, [esp + 0x1a8]
mov edx, eax
mov ecx, esi
call fcn.0047e012
mov ecx, esi
mov esi, dword [esp + 0xc]
mov edx, esi
call fcn.0047e478
lea edi, [esp + 0xb8]
mov ecx, edi
call fcn.0047f351
mov ecx, edi
mov edx, esi
call fcn.0047e478
mov eax, dword [esp + 0x98]
cmp eax, 5
mov dword [esp + 0x38], eax
jb 0x415679
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
sub dword [esp + 0x34], 1
jb 0x4157f7
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0x78]
push 0x643284
call fcn.0047e392
pop ecx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x1c], 0
mov dword [esp + 8], ecx
mov dword [esp + 0x10], eax
cmp dword [esp + 0x1c], 0x3f
ja 0x4157ea
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x38]
jne 0x4156d8
cmp dword [esp + 0x1c], 0
je 0x415760
mov esi, dword [esp + 0xc]
lea ecx, [esp + 0xb8]
lea edx, [esp + 0x1a8]
push esi
push dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
push ebx
lea edi, [esp + 0x5c]
push edi
mov edi, edx
push edx
call fcn.00480ea6
add esp, 0x14
mov ecx, edi
lea edx, [esp + 0xb8]
push esi
mov edi, dword [esp + 0x2c]
push edi
push ebx
lea eax, [esp + 0x5c]
push eax
push edx
call fcn.00480ea6
add esp, 0x14
lea ecx, [esp + 0xb8]
lea edx, [esp + 0x1a8]
push esi
push edi
push ebx
lea eax, [esp + 0x5c]
push eax
push edx
call fcn.00480ea6
add esp, 0x14
lea ecx, [esp + 0x1a8]
lea edx, [esp + 0xb8]
push esi
push edi
push ebx
lea eax, [esp + 0x5c]
push eax
push edx
call fcn.00480ea6
add esp, 0x14
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
shr eax, 0x1c
push 0x643294
push eax
call fcn.00481206
pop ecx
pop edx
lea ebx, [esp + 0x1a8]
lea ecx, [esp + 0xb8]
mov edx, ebx
push dword [esp + 0xc]
push dword [esp + 0x2c]
push dword [esp + 0x28]
lea esi, [esp + 0x5c]
push esi
push eax
call fcn.00480ea6
add esp, 0x14
push 0xa
pop eax
lea edx, [esp + 0xf0]
mov ecx, eax
mov esi, ebx
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov edi, ebx
lea ebx, [esp + 0xb8]
mov ecx, eax
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov edi, ebx
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 8]
add dword [esp + 0x1c], 4
shld dword [esp + 0x10], eax, 4
shl eax, 4
mov dword [esp + 8], eax
jmp 0x4156b8
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], eax
jmp 0x415685
lea esi, [esp + 0xb8]
lea edx, [esp + 0x1a8]
mov ecx, esi
push dword [esp + 0xc]
push dword [esp + 0x2c]
push dword [esp + 0x28]
lea edi, [esp + 0x5c]
push edi
lea eax, [esp + 0x190]
push eax
call fcn.00480ea6
add esp, 0x14
mov ecx, esi
call fcn.0047e0f8
mov ecx, esi
mov edx, edi
call fcn.00481223
test al, al
je 0x41586d
lea esi, [esp + 0xb8]
lea edi, [esp + 0x50]
mov ecx, esi
mov edx, edi
call fcn.0047efe1
mov ecx, esi
mov edx, edi
call fcn.00481223
test al, al
je 0x41586d
lea ecx, [esp + 0xb8]
lea edx, [esp + 0x50]
call fcn.00480e5f
lea esi, [esp + 0xb8]
mov ecx, esi
call fcn.0047e0f8
push 0xa
pop ecx
lea edi, [esp + 0x138]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x1a8]
call fcn.0047e08d
mov esi, dword [esp + 0x2c]
sub dword [esp + 0x18], 1
jb 0x4158aa
mov ecx, esi
call fcn.0047e08d
add esi, 0x28
jmp 0x415897
mov eax, dword [esp + 0x234]
test eax, eax
je 0x4158c6
imul eax, eax, 0x28
push 8
pop edx
mov ecx, dword [esp + 0x2c]
push eax
call fcn.00408833
pop eax
lea ecx, [esp + 0x180]
call fcn.0047e08d
lea ecx, [esp + 0x258]
call fcn.0047e08d
lea ecx, [esp + 0x300]
jmp 0x415d0b
lea ebx, [esp + 0x50]
lea edx, [esp + 0x1d8]
mov ecx, ebx
push edi
lea eax, [esp + 0xf4]
push eax
call fcn.00483b9a
pop eax
pop ecx
mov ecx, dword [ebx]
cmp ecx, 2
jne 0x415a60
mov eax, edi
lea eax, [edi - 3]
cmp eax, 0x24
ja 0x415fda
xorps xmm0, xmm0
and dword [esp + 0x153], 0
mov ebx, edi
mov ecx, esi
mov edx, edi
movaps xmmword [esp + 0x140], xmm0
and dword [esp + 0x14f], 0
movaps xmmword [esp + 0x130], xmm0
push 0x626328
push edi
lea eax, [esp + 0xf8]
push eax
call fcn.0043613b
add esp, 0xc
lea edi, [esp + 0x51]
push 0x27
push esi
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov al, 1
mov byte [edi - 1], bl
test al, 1
je 0x4159a6
lea ecx, [esp + 0x50]
call fcn.00439f54
test edx, edx
je 0x4169ad
movzx edx, byte [eax]
lea ecx, [esp + 0x258]
call fcn.00439f74
cmp byte [esp + 0x258], 8
jne 0x4159f8
xor ebx, ebx
jmp 0x4159f1
test ebx, ebx
je 0x415a12
xor edi, edi
lea ecx, [esp + 0x50]
lea esi, [ebx + edi]
call fcn.00439f54
cmp esi, edx
jae 0x415fd2
test eax, eax
je 0x415fd2
mov ecx, edi
inc ecx
je 0x415fda
add eax, ebx
cmp ecx, 5
mov al, byte [edi + eax]
jb 0x4159e3
cmp al, 0xf
ja 0x415fda
test al, al
mov edi, ecx
js 0x4159ac
add ebx, ecx
jb 0x415fda
xor eax, eax
jmp 0x415974
xor ebx, ebx
cmp byte [esp + 0x258], 8
mov eax, 0
je 0x415974
jmp 0x415fda
lea ecx, [esp + 0x50]
call fcn.00439f54
test edx, edx
je 0x4169e9
movzx edx, byte [eax]
lea ecx, [esp + 0x258]
call fcn.00439f74
cmp byte [esp + 0x258], 8
jne 0x415a46
xor eax, eax
xor ebx, ebx
inc ebx
jmp 0x415974
xor eax, eax
cmp byte [esp + 0x258], 8
mov ebx, 1
je 0x415974
jmp 0x415fda
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x18], edi
and edi, 0xff000000
mov dword [esp + 8], eax
shr eax, 0x18
mov dword [esp + 0x14], esi
and esi, 0xffffff00
mov dword [esp + 0x10], edi
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x18]
mov edx, 0xffffff
and edi, edx
or edi, dword [esp + 0x10]
mov dword [esp + 0x18], edi
movzx edi, byte [esp + 0x14]
or edi, esi
mov dword [esp + 0x30], edi
mov edi, dword [esp + 8]
and edi, edx
movzx edx, byte [esp + 0xac]
shl edx, 0x18
or edi, edx
test ecx, ecx
cmove edi, ecx
add edi, dword [esp + 0x1e0]
setae cl
cmp edi, 0x10000000
mov dword [esp + 8], edi
setb dl
and dl, cl
movzx ecx, dl
mov dword [esp + 0x10], ecx
jmp 0x414bb5
mov eax, dword [esp + 0x60]
mov edx, 0xffffff00
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x5c]
mov ebx, eax
and eax, edx
mov dword [esp + 0x44], esi
mov dword [esp + 0x4c], ecx
shr esi, 8
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xc], eax
and eax, edx
mov dword [esp + 0x18], eax
mov eax, ecx
mov eax, dword [esp + 0x58]
shr ecx, 8
and edx, eax
mov dword [esp + 0x20], eax
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x70]
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x74]
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x78]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x3c], edi
jmp 0x414f31
lea ecx, [esp + 0x1d8]
lea edx, [esp + 0x180]
call fcn.0047ee17
test al, al
je 0x415ce5
lea ecx, [esp + 0x1a8]
lea edx, [esp + 0x200]
call fcn.0047e012
lea ecx, [esp + 0x1d8]
lea edx, [esp + 0x180]
call fcn.0047ee17
cmp al, 1
jne 0x415c9e
lea ecx, [esp + 0x1d8]
call fcn.004816c4
lea edi, [esp + 0x200]
lea esi, [esp + 0xf0]
mov ecx, esi
mov edx, edi
push edi
call fcn.0047f5b5
pop eax
lea ebx, [esp + 0xb8]
lea eax, [esp + 0x50]
mov edx, esi
mov ecx, ebx
push eax
call fcn.00480e8e
pop eax
mov ecx, edi
call fcn.0047e08d
push 0xa
pop ecx
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x1d8]
call fcn.00480e53
test al, al
je 0x415bdf
push 0xa
pop ecx
lea edx, [esp + 0xf0]
lea ebx, [esp + 0x1a8]
lea eax, [esp + 0x200]
mov edi, edx
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0xb8]
mov edi, edx
mov ecx, esi
push eax
call fcn.0047f5b5
pop eax
mov ecx, edi
call fcn.0047e08d
lea eax, [esp + 0x50]
mov ecx, ebx
mov edx, esi
push eax
call fcn.00480e8e
pop eax
jmp 0x415bdf
push 0xa
pop ecx
lea esi, [esp + 0x1a8]
lea edi, [esp + 0x138]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x1d8]
call fcn.0047e08d
lea ecx, [esp + 0x200]
jmp 0x415cff
push 0xa
pop ecx
lea esi, [esp + 0x180]
lea edi, [esp + 0x138]
rep movsd dword es:[edi], dword [esi]
jmp 0x415d10
push 0x624fc4
call fcn.00439ff0
push 0xa
pop ecx
lea esi, [esp + 0x200]
lea edi, [esp + 0x138]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x1d8]
call fcn.0047e08d
lea ecx, [esp + 0x180]
call fcn.0047e08d
lea eax, [esp + 0xf4]
push 0xa
pop edx
mov ecx, edx
mov edi, eax
lea esi, [esp + 0x138]
lea ebx, [esp + 0x2b0]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edi, ebx
mov esi, eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x50]
call fcn.004f481e
mov esi, dword [ebx + 0x20]
mov dword [esp + 8], eax
cmp esi, 5
jb 0x415d52
mov esi, dword [esp + 0x2b4]
test esi, esi
je 0x415e74
lea ecx, [esp + 0x2b0]
lea ebx, [esi - 1]
call fcn.004097da
xor ecx, ecx
sub edx, 1
lea edi, [eax + edx*8]
mov edx, 0x696e90
cmovb edi, ecx
mov ecx, edi
call fcn.0047e9bc
mov eax, dword [edi + 4]
bsr ecx, dword [edi]
push 0x3f
pop edx
cmove ecx, edx
bsr edx, eax
xor ecx, 0x1f
xor edx, 0x1f
add ecx, 0x20
test eax, eax
cmove edx, ecx
shl esi, 6
sub esi, edx
add esi, 7
shr esi, 3
mov ecx, esi
call fcn.0047e1ef
lea ecx, [esp + 0x130]
mov dword [esp + 0x10], ebx
mov dword [ecx], eax
mov dword [ecx + 4], edx
and dword [ecx + 8], 0
lea ecx, [esp + 0x2b0]
mov edx, ebx
push 0x643358
call fcn.0047e326
pop ecx
mov dword [esp + 0x1c], eax
lea eax, [eax + edx*8]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x1c], eax
je 0x415e1b
mov eax, dword [esp + 0x1c]
mov edi, dword [eax]
mov ebx, dword [eax + 4]
push 8
pop esi
sub esi, 1
jb 0x415e14
lea ecx, [esp + 0x130]
mov edx, edi
call fcn.0047e994
shrd edi, ebx, 8
shr ebx, 8
jmp 0x415df8
add dword [esp + 0x1c], 8
jmp 0x415de2
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x2b0]
push 0x643368
call fcn.0047e392
pop ecx
mov esi, dword [eax]
mov ebx, dword [eax + 4]
lea edi, [esp + 0x130]
mov eax, esi
or eax, ebx
je 0x415e55
mov ecx, edi
mov edx, esi
call fcn.0047e994
shrd esi, ebx, 8
shr ebx, 8
jmp 0x415e3d
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x138]
mov esi, dword [esp + 0x134]
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], ecx
jmp 0x415e8d
xor edi, edi
inc edi
mov ecx, edi
mov edx, edi
call fcn.00406573
mov esi, eax
mov byte [eax], 0
mov dword [esp + 0x1c], edi
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x1c]
mov ecx, esi
mov edx, edi
call fcn.00406248
mov ebx, dword [esp + 8]
sub ebx, edi
jae 0x415eac
mov dword [esp + 0x10], 0
jmp 0x415ee7
mov edi, dword [esp + 8]
xor edx, edx
inc edx
mov ecx, edi
call fcn.00426eaa
mov dword [esp + 0x20], eax
mov ecx, edx
mov dword [esp + 0x10], edx
mov edx, edi
push 0x593710
push ebx
call fcn.00409cb7
pop ecx
pop ecx
mov ecx, eax
push 0x593720
push dword [esp + 0x20]
push esi
call fcn.0043613b
add esp, 0xc
mov ecx, dword [esp + 0x28]
mov edx, esi
call fcn.00563c9c
lea ecx, [esp + 0x2b0]
call fcn.0047e08d
lea ecx, [esp + 0x2d8]
call fcn.0047e3ee
test edx, edx
js 0x416a8c
xor ecx, ecx
sub edx, 1
jb 0x415f23
mov dword [eax + 4], ecx
mov dword [eax], ecx
add eax, 8
jmp 0x415f14
lea ecx, [esp + 0x2d8]
call fcn.0047e08d
lea esi, [esp + 0x284]
mov ecx, esi
call fcn.00568122
mov ecx, dword [esi]
mov edx, dword [esi + 4]
call fcn.00563c9c
mov eax, dword [esp + 0x1c]
xor ecx, ecx
cmp dword [esp + 8], eax
mov eax, 0
jb 0x414ad1
xor edx, edx
xor ecx, ecx
inc edx
call fcn.00563c9c
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
jmp 0x414ad1
cmp dword [esp + 0x4c], 0x10000000
jae 0x415faf
mov eax, dword [esp + 0x4c]
lea eax, [eax*8]
sub eax, dword [esp + 0xe0]
mov dword [esp + 0x44], eax
jae 0x416009
mov esi, dword [esp + 0x44]
xor edx, edx
mov dword [esp + 0x4c], eax
shr esi, 8
jmp 0x414ffb
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x10], 0
mov ecx, edi
shr ecx, 8
push 6
pop eax
mov dword [esp + 0x20], eax
mov esi, ecx
mov dword [esp + 0x44], edi
jmp 0x415003
test edi, edi
je 0x416106
push 8
pop eax
xor ecx, ecx
xor esi, esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0xac], edx
jmp 0x415ad5
mov ecx, dword [esp + 0x204]
mov edx, dword [esp + 0x208]
cmp ecx, edx
jbe 0x416058
xor eax, eax
sub ecx, edx
mov byte [esp + 0x184], 0x15
mov byte [esp + 0x188], dl
cmovb ecx, eax
mov eax, edx
shr eax, 8
mov ebx, ecx
mov word [esp + 0x189], ax
mov eax, edx
shr eax, 0x18
mov byte [esp + 0x18b], al
mov dword [esp + 0x180], edx
jmp 0x41479d
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x44]
mov ecx, edx
shr ecx, 0x18
mov byte [esp + 0x187], cl
mov ecx, dword [esp + 0x10]
shr ecx, 8
mov word [esp + 0xb9], cx
shr ecx, 0x10
mov byte [esp + 0xbb], cl
mov ecx, dword [esp + 8]
mov byte [esp + 0xbc], cl
shr ecx, 8
mov word [esp + 0xbd], cx
shr ecx, 0x10
mov byte [esp + 0xbf], cl
mov ecx, edx
shr ecx, 8
cmp byte [esp + 0x1b8], 0
mov word [esp + 0x185], cx
mov byte [esp + 0x188], al
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], ecx
mov ecx, ebx
mov eax, dword [esp + 0x1b4]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xac], eax
je 0x4162e8
mov ah, 1
jmp 0x416317
movzx ecx, byte [esp + 0x52]
movzx eax, word [esp + 0x50]
mov edx, dword [esp + 0x53]
mov edi, dword [esp + 0x57]
movzx esi, byte [esp + 0x5b]
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x2c], 0
shl ecx, 0x10
shld esi, edi, 0x18
shld edi, edx, 0x18
shl edx, 0x18
or eax, ecx
mov dword [esp + 8], edi
mov edi, dword [esp + 0x1e0]
mov dword [esp + 0x30], esi
or edx, eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x10], edx
cmp dword [esp + 0x1dc], edi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x3c], eax
mov al, 0x17
mov dword [esp + 0x48], eax
jbe 0x41628b
mov eax, dword [esp + 0x1d8]
mov ecx, dword [eax + 4]
cmp ecx, dword [eax + 8]
jbe 0x41628b
mov edx, dword [eax]
lea esi, [esp + 0x50]
mov ecx, esi
call fcn.004465bf
cmp dword [esi], 2
jne 0x41628b
cmp dword [esp + 0x58], 0
mov eax, 0
mov dword [esp + 0x24], 0
je 0x416295
lea esi, [esp + 0x50]
mov eax, dword [esi + 4]
mov ecx, esi
movzx edx, byte [eax]
call fcn.00446972
mov edx, dword [esi]
cmp edx, 2
jne 0x4165ac
lea esi, [esp + 0x50]
lea edx, [esp + 0x1d8]
mov ecx, esi
call fcn.004837ba
mov edx, dword [esi]
cmp edx, 2
jne 0x41667c
lea esi, [esp + 0x50]
lea edx, [esp + 0x1d8]
mov edi, dword [esi + 4]
mov eax, dword [esi + 8]
mov ecx, esi
mov dword [esp + 0x48], eax
push edi
call fcn.00483a1e
pop eax
mov edx, dword [esi]
cmp edx, 2
jne 0x4166e9
mov edx, dword [esp + 0x1d8]
lea esi, [esp + 0x130]
mov ecx, esi
push edi
call fcn.00483aba
pop eax
mov edx, dword [esi]
cmp edx, 2
jne 0x4166fe
mov eax, dword [esp + 0x138]
cmp eax, 0x10000000
mov dword [esp + 0x24], eax
jae 0x4169bb
mov eax, dword [esp + 0x134]
cmp byte [esp + 0x48], 0x18
mov dword [esp + 0x2c], eax
jne 0x4169f7
mov eax, dword [esp + 0x24]
jmp 0x414bb5
xor eax, eax
mov dword [esp + 0x24], 0
shr eax, 8
mov ecx, dword [esp + 0x1dc]
mov dword [esp + 0x240], eax
mov eax, dword [esp + 0x1e0]
cmp ecx, eax
jbe 0x4162db
xor edx, edx
sub ecx, eax
mov dword [esp + 0x14], 0
cmovb ecx, edx
push 0x15
pop edx
mov ebx, ecx
mov ecx, dword [esp + 0x208]
mov dword [esp + 0x30], edx
mov esi, eax
mov dword [esp + 0x18], eax
jmp 0x414bd5
mov eax, dword [esp + 0x24]
mov dword [esp + 0x14], eax
jmp 0x414bf6
mov eax, dword [esp + 0x1b0]
cmp eax, dword [esp + 0xac]
jbe 0x416336
mov ecx, dword [esp + 0xac]
mov edx, eax
xor eax, eax
sub edx, ecx
cmovb edx, eax
mov eax, ecx
shl eax, 0x18
mov dword [esp + 0x40], edx
mov dword [esp + 0x30], eax
mov ah, 0x15
mov esi, dword [esp + 0xac]
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], ecx
shr esi, 8
jmp 0x414886
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x185]
mov esi, dword [esp + 0xbd]
movzx edi, byte [esp + 0x10]
shr ebx, 0x10
mov dword [esp + 0x30], 0x48862a09
mov edx, ecx
and eax, 0xffffff00
shr ecx, 0x18
or ecx, eax
mov eax, dword [esp + 0x240]
shl edx, 8
mov dword [esp + 8], ecx
mov ecx, esi
shr ecx, 0x18
mov word [esp + 0x179], ax
shr eax, 0x10
mov byte [esp + 0x17b], al
movzx eax, byte [esp + 0x4c]
or edx, eax
mov eax, dword [esp + 0xb9]
shld esi, eax, 8
shl eax, 8
or eax, edi
mov edi, dword [esp + 0x228]
mov dword [esp + 0x130], edi
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x134], edi
mov dword [esp + 0x138], edx
mov edx, dword [esp + 8]
mov edi, dword [esp + 0xe0]
mov dword [esp + 0x13c], edx
mov dword [esp + 0x140], edi
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0xc1]
mov dword [esp + 0x148], esi
mov byte [esp + 0x14c], cl
mov esi, 0x101
mov dword [esp + 0x14d], eax
mov eax, dword [esp + 0x18]
mov byte [esp + 0x151], ah
mov eax, dword [esp + 0xc6]
mov dword [esp + 0x152], eax
mov eax, dword [esp + 0xcb]
mov byte [esp + 0x156], bl
mov dword [esp + 0x157], eax
mov eax, dword [esp + 0xc]
shr eax, 0x18
mov byte [esp + 0x15b], al
mov eax, dword [esp + 0x38]
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x160], al
shr eax, 8
mov word [esp + 0x161], ax
shr eax, 0x10
mov byte [esp + 0x163], al
mov eax, dword [esp + 0x34]
mov dword [esp + 0x164], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x40], 0x10df786
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x170], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x174], eax
mov eax, dword [esp + 0x48]
mov byte [esp + 0x178], al
xor eax, eax
inc eax
cmp byte [esp + 0x10], 9
mov dword [esp + 0xac], eax
jne 0x41655b
lea eax, [esp + 0x145]
lea ecx, [0x696ea1]
push 0x27
push ecx
push eax
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
mov dword [esp + 0x44], 0
jne 0x41661b
cmp byte [esp + 0x48], 4
jne 0x41661b
cmp dword [esp + 0x14], 0
jne 0x41661b
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
push 0
push 0x6c4590
call fcn.0055879c
pop ecx
pop edx
test al, al
je 0x41655b
cmp dword [esp + 0xe0], 0
je 0x416805
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x4c]
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x30], 0
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], eax
jmp 0x416667
mov dword [esp + 0x44], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
xor ebx, ebx
xor edi, edi
mov dword [esp + 0xc], 0
jmp 0x41665f
movzx eax, byte [esp + 0x56]
movzx ecx, word [esp + 0x54]
mov esi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x60]
shl eax, 0x10
mov dword [esp + 0x3c], esi
or ecx, eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x24], ecx
mov cl, byte [esp + 0x57]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x7c]
jmp 0x4167c6
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x2c], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x18], 0
mov dword [esp + 8], 0
mov dword [esp + 0x10], 0
jmp 0x41490d
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x54]
mov ebx, dword [esp + 0x60]
mov dword [esp + 0xf8], ecx
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x24], esi
mov dword [esp + 0xf0], esi
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x7c]
jmp 0x4167a2
lea esi, [esp + 0x54]
lea eax, [esp + 0x134]
push 0xc
pop ecx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dword [eax - 4], edx
mov eax, dword [esp + 0x134]
mov edi, dword [esp + 0x138]
mov ecx, dword [esp + 0x160]
mov ebx, dword [esp + 0x140]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x13c]
mov esi, edi
and edi, 0xffffff00
mov dword [esp + 0x14], ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x144]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x148]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x14c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x154]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x15c]
mov ecx, esi
mov esi, dword [esp + 0x24]
movzx ecx, cl
or ecx, edi
mov dword [esp + 0xf0], esi
mov esi, dword [esp + 8]
mov dword [esp + 0xf4], ecx
mov dword [esp + 0xf8], esi
mov ecx, dword [esp + 0xf4]
mov edi, dword [esp + 0x1e0]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0xf8]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x24]
shr ecx, 0x18
mov esi, dword [esp + 0x24]
movzx ecx, cl
shl ecx, 0x18
and esi, 0xffffff
or esi, ecx
test edx, edx
cmove esi, edx
add esi, edi
setae dl
cmp esi, 0x10000000
mov dword [esp + 8], esi
setb dh
and dh, dl
movzx ecx, dh
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], edx
jmp 0x414bb5
mov eax, dword [esp + 0x228]
mov ecx, dword [esp + 0x4c]
lea edx, [esp + 0xf0]
lea esi, [esp + 0x50]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov dword [edx + 8], ecx
and dword [edx + 0xc], 0
and dword [edx + 0x10], 0
mov ecx, esi
call fcn.00446733
cmp dword [esi], 2
jne 0x416909
lea esi, [esp + 0x50]
mov edi, dword [esi + 4]
mov edx, dword [esi + 8]
mov ecx, esi
push 9
call fcn.00446b4c
pop eax
cmp dword [esi], 2
jne 0x416909
lea esi, [esp + 0x50]
lea edx, [esp + 0xf0]
mov ecx, esi
push edi
call fcn.00483d69
pop eax
cmp dword [esi], 2
jne 0x416909
lea esi, [esp + 0x50]
lea edx, [esp + 0xb8]
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
mov edi, dword [esi + 0xc]
mov dword [edx + 4], ecx
mov ecx, esi
mov dword [edx], eax
mov dword [edx + 8], edi
call fcn.004833cf
cmp dword [esi], 2
jne 0x416909
lea esi, [esp + 0x50]
lea edx, [esp + 0xb8]
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
mov ecx, esi
mov dword [esp + 0x14], eax
call fcn.004833cf
cmp dword [esi], 2
jne 0x416909
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0x58]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xbc]
cmp eax, esi
jbe 0x416a05
mov ecx, eax
xor eax, eax
sub ecx, esi
cmovb ecx, eax
mov dword [esp + 0x2c], ecx
push 0x15
pop eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x20], eax
jmp 0x416ad1
mov eax, dword [esp + 0x54]
movzx ecx, word [esp + 0x81]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x40], eax
movzx eax, byte [esp + 0x83]
shl eax, 0x10
or ecx, eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 8], eax
mov al, byte [esp + 0x6c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x6d]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x72]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x77]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x24], eax
mov al, byte [esp + 0x71]
mov dword [esp + 0xc], eax
mov al, byte [esp + 0x76]
mov dword [esp + 0x20], eax
mov al, byte [esp + 0x7b]
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0x80]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
mov ebx, edi
and ebx, 0xff000000
shr eax, 8
mov dword [esp + 0x10], eax
jmp 0x41490d
xor ecx, ecx
xor edx, edx
push 0x6262a8
call fcn.0043a050
push 0xc
pop esi
mov eax, dword [esp + 0x24]
xor edi, edi
xor edx, edx
mov dword [esp + 0x14], 0
mov dword [esp + 8], eax
jmp 0x41677e
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__valueC:Users_admin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinapi_util_0.1.6_srcwin.rs
push 0x696e90
call fcn.0043a9e0
xor ecx, ecx
xor edx, edx
push 0x6262b8
call fcn.0043a050
mov eax, dword [esp + 0x48]
and eax, 0xffff00
jmp 0x416295
mov eax, dword [esp + 0xfc]
cmp byte [esp + 0x100], 0
mov dword [esp + 0x30], eax
je 0x416a9e
xor eax, eax
inc eax
mov dword [esp + 0x40], eax
jmp 0x416ac1
lea ecx, [esp + 0xf0]
mov edx, 0x643398
mov dword [ecx], str.divide_by_zero_
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x6c4590
and dword [ecx + 0xc], 0
call fcn.00439fc0
push 0x24
pop edx
mov ecx, 0x6432c4
push 0x6432e8
call fcn.0043a9e0
lea edx, [esp + 0xf0]
lea ecx, [esp + 0xb8]
and dword [edx], 0
call fcn.0047e05f
push 8
pop ecx
mov edx, 0x280
call fcn.00434230
push 0x33
pop edx
mov ecx, str.assertion_failed:_self.len_____isize::MAX_as_usize
push 0x642f78
call fcn.0043a9e0
mov eax, dword [esp + 0xf8]
cmp eax, dword [esp + 0x30]
jbe 0x416ade
mov ecx, eax
push 0x15
pop eax
mov dword [esp + 0x40], eax
xor eax, eax
sub ecx, dword [esp + 0x30]
cmovb ecx, eax
mov dword [esp + 0x2c], ecx
mov esi, dword [esp + 0x30]
mov dword [esp + 0x14], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], eax
jmp 0x416995
lea eax, [esp + 0x78]
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0xb8]
mov esi, dword [eax - 0x24]
push ebx
call fcn.004f46b4
pop eax
lea ebx, [esp + 0xf0]
mov edx, esi
mov ecx, ebx
push edi
call fcn.004f46b4
pop eax
push 0xa
pop eax
lea edx, [esp + 0x50]
mov ecx, eax
lea esi, [esp + 0xb8]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea edi, [esp + 0x78]
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
call fcn.004f4654
cmp eax, 0x1000
ja 0x416ccc
lea ecx, [esp + 0x78]
call fcn.004097da
shl edx, 3
xor ecx, ecx
xor edi, edi
xor ebx, ebx
test edx, edx
je 0x416b63
test cl, 1
jne 0x416b63
add edi, dword [eax]
mov cl, 1
adc ebx, dword [eax + 4]
add eax, 8
add edx, 0xfffffff8
jmp 0x416b4b
test edx, edx
jne 0x416ccc
lea ecx, [esp + 0x78]
call fcn.004097da
lea ecx, [esp + 0x50]
mov dword [esp + 0x14], eax
mov dword [esp + 8], edx
call fcn.004097da
mov esi, edx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 8]
push esi
push eax
call fcn.0047f2ec
pop ecx
pop edx
cmp al, 2
jb 0x416ccc
lea ecx, [esp + 0x50]
call fcn.0040982a
test al, al
jne 0x416ccc
lea ecx, [esp + 0x78]
call fcn.0040982a
test al, al
jne 0x416ccc
mov eax, edi
cmp edi, 2
mov eax, ebx
sbb eax, 0
jb 0x416ccc
xor eax, eax
inc eax
xor ecx, ecx
dec ecx
cmp ecx, edi
sbb eax, ebx
jb 0x416ccc
movzx eax, byte [esp + 0x7f]
movzx ecx, word [esp + 0x7d]
movsd xmm0, qword [esp + 0x80]
mov edi, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x58]
mov dword [esp + 0xac], 0
shl eax, 0x10
movsd qword [esp + 0x290], xmm0
movsd xmm0, qword [esp + 0x88]
mov ebx, edi
mov dword [esp + 8], edx
shr edx, 8
or ecx, eax
mov eax, dword [esp + 0x50]
and ebx, 0xff000000
mov dword [esp + 0x10], edx
mov dword [esp + 0x44], ecx
movsd qword [esp + 0x298], xmm0
movsd xmm0, qword [esp + 0x90]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x54]
movsd qword [esp + 0x2a0], xmm0
movsd xmm0, qword [esp + 0x98]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x5c]
movsd qword [esp + 0x2a8], xmm0
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x69]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x6e]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x73]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x24], eax
mov al, byte [esp + 0x68]
mov dword [esp + 0x18], eax
mov al, byte [esp + 0x6d]
mov dword [esp + 0xc], eax
mov al, byte [esp + 0x72]
mov dword [esp + 0x20], eax
mov al, byte [esp + 0x77]
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0x7c]
mov dword [esp + 0x14], eax
jmp 0x41490d
lea ecx, [esp + 0x50]
call fcn.0047e08d
lea ecx, [esp + 0x78]
call fcn.0047e08d
xor eax, eax
xor ebx, ebx
xor edi, edi
mov dword [esp + 8], 0
mov dword [esp + 0x10], 0
inc eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], eax
jmp 0x41490d