Function at 0x439360
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x33c
mov dword [ebp - 0x3c], 0x6050205
mov dword [ebp - 0x38], 0x624021a
mov dword [ebp - 0x34], 0x893027e
mov dword [ebp - 0x30], 0xbe50300
mov dword [ebp - 0x2c], 0x42b01b3
mov dword [ebp - 0x28], 0xb4402dd
mov dword [ebp - 0x24], 0xb8602ef
push 4
push 0
push 0
call dword [ebp + 8]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x4393b3
xor al, al
jmp 0x43b9c5
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 4], 0
fldz
fstp qword [ebp - 0x48]
fldz
fstp qword [ebp - 0x10]
fldz
fstp qword [ebp - 0x10]
jmp 0x4393ec
fld qword [ebp - 0x10]
fadd qword [0x9c6318]
fstp qword [ebp - 0x10]
fld qword [0x9c63f8]
fcomp qword [ebp - 0x10]
fnstsw ax
test ah, 0x41
jne 0x43944b
fld qword [0x9c63f0]
fmul qword [ebp - 0x10]
fmul qword [ebp - 0x10]
fld qword [ebp - 0x10]
fmul qword [ebp - 0x10]
fsubp st(1)
fld qword [0x9c63e8]
fmul qword [ebp - 0x10]
fmul qword [ebp - 0x10]
fadd qword [0x9c63e0]
fdivp st(1)
fadd qword [ebp - 0x48]
fstp qword [ebp - 0x48]
fld qword [0x9c63d8]
fcomp qword [ebp - 0x48]
fnstsw ax
test ah, 5
jp 0x439449
fld qword [0x9c63d0]
fmul qword [ebp - 0x10]
fsubr qword [ebp - 0x48]
fstp qword [ebp - 0x48]
jmp 0x4393e0
fldz
fcomp qword [ebp - 0x48]
fnstsw ax
test ah, 0x41
jne 0x43949e
cmp al, 0x1b
cmp byte [0x25401f38], ah
cmp esp, dword [edi]
inc edi
and al, 0x3a
inc ebp
push ds
inc ecx
sub dword [eax], edi
pop ds
cmp eax, 0x3e1c3927
pop ds
and al, byte ds:[esi + 0x24]
cmp eax, 0x4127381f
inc esi
daa
cmp al, 0x1e
pop esi
inc edi
jp 0x4394de
cmp dword [ebx], ebp
jbe 0x4394ae
arpl word [eax + 0x3c], si
xor eax, dword [edx + 0x2c]
xor al, 0x2e
cmp byte ds:[eax + 0x66], al
xor dword es:[eax + 0x70], edx
jmp 0x43b80d
mov dword [ebp - 0x68], 0x439457
mov dword [ebp - 4], 0x43947f
mov eax, dword [ebp - 0x68]
cwde
mov dword [ebp - 0x98], eax
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x94], ecx
mov byte [ebp - 0x1b1], 0x1e
mov dword [ebp - 0x1a8], 0
jmp 0x4394e0
mov edx, dword [ebp - 0x1a8]
add edx, 1
mov dword [ebp - 0x1a8], edx
invalid
cmp dword [ebp - 0x1a8], 0x100
jae 0x439501
mov eax, dword [ebp - 0x1a8]
mov cl, byte [ebp - 0x1a8]
mov byte [ebp + eax - 0x1a0], cl
jmp 0x4394d1
mov dword [ebp - 0x9c], 0
mov byte [ebp - 0x1b2], 0
mov dword [ebp - 0x1a8], 0xff
jmp 0x43952d
mov edx, dword [ebp - 0x1a8]
sub edx, 1
mov dword [ebp - 0x1a8], edx
cmp dword [ebp - 0x1a8], 0
jbe 0x439839
mov dword [ebp - 0x1b8], 0
mov dword [ebp - 0x1c0], 1
mov eax, dword [ebp - 0x1c0]
cmp eax, dword [ebp - 0x1a8]
jae 0x43956e
mov ecx, dword [ebp - 0x1c0]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x1c0], edx
jmp 0x43954e
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x2ec], eax
cmp dword [ebp - 0x2ec], 3
ja case.default.0x43958d
mov ecx, dword [ebp - 0x2ec]
jmp dword [ecx*4 + 0x43b9cc]
movzx edx, byte [ebp - 0x1b2]
movzx ecx, byte [ebp + edx - 0x1a0]
fld qword [ebp - 0x48]
fnstcw word [ebp - 0x2ee]
movzx eax, word [ebp - 0x2ee]
or eax, 0xc00
mov dword [ebp - 0x2f4], eax
fldcw word [ebp - 0x2f4]
fistp qword [ebp - 0x2fc]
fldcw word [ebp - 0x2ee]
mov edx, dword [ebp - 0x2fc]
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x1b2], cl
jmp 0x439712
movzx eax, byte [ebp - 0x1b2]
movzx ecx, byte [ebp + eax - 0x1a0]
fld qword [ebp - 0x48]
fnstcw word [ebp - 0x2fe]
movzx eax, word [ebp - 0x2fe]
or eax, 0xc00
mov dword [ebp - 0x304], eax
fldcw word [ebp - 0x304]
fistp qword [ebp - 0x30c]
fldcw word [ebp - 0x2fe]
mov edx, dword [ebp - 0x30c]
shr edx, 8
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x1b2], cl
jmp 0x439712
movzx eax, byte [ebp - 0x1b2]
movzx ecx, byte [ebp + eax - 0x1a0]
fld qword [ebp - 0x48]
fnstcw word [ebp - 0x30e]
movzx eax, word [ebp - 0x30e]
or eax, 0xc00
mov dword [ebp - 0x314], eax
fldcw word [ebp - 0x314]
fistp qword [ebp - 0x31c]
fldcw word [ebp - 0x30e]
mov edx, dword [ebp - 0x31c]
shr edx, 0x10
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x1b2], cl
jmp 0x439712
movzx eax, byte [ebp - 0x1b2]
movzx ecx, byte [ebp + eax - 0x1a0]
fld qword [ebp - 0x48]
fnstcw word [ebp - 0x31e]
movzx eax, word [ebp - 0x31e]
or eax, 0xc00
mov dword [ebp - 0x324], eax
fldcw word [ebp - 0x324]
fistp qword [ebp - 0x32c]
fldcw word [ebp - 0x31e]
mov edx, dword [ebp - 0x32c]
shr edx, 0x18
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x1b2], cl
jmp 0x439712
movzx eax, byte [ebp - 0x1b2]
movzx ecx, byte [ebp + eax - 0x1a0]
mov edx, dword [ebp - 0x94]
add edx, dword [ebp - 0x9c]
movzx eax, byte [edx - 4]
add ecx, eax
mov byte [ebp - 0x1b2], cl
mov ecx, dword [ebp - 0x9c]
add ecx, 1
mov dword [ebp - 0x9c], ecx
movzx edx, byte [ebp - 0x1b1]
cmp dword [ebp - 0x9c], edx
jb 0x439750
mov dword [ebp - 0x9c], 0
movzx eax, byte [ebp - 0x1b1]
movzx ecx, byte [ebp - 0x1b2]
add ecx, eax
mov byte [ebp - 0x1b2], cl
movzx edx, byte [ebp - 0x1b2]
and edx, dword [ebp - 0x1c0]
mov dword [ebp - 0x1bc], edx
mov eax, dword [ebp - 0x1b8]
add eax, 1
mov dword [ebp - 0x1b8], eax
cmp dword [ebp - 0x1b8], 0xb
jbe 0x43978f
mov eax, dword [ebp - 0x1bc]
xor edx, edx
div dword [ebp - 0x1a8]
mov dword [ebp - 0x1bc], edx
mov ecx, dword [ebp - 0x1bc]
cmp ecx, dword [ebp - 0x1a8]
ja 0x43956e
mov edx, dword [ebp - 0x1a8]
cmp edx, dword [ebp - 0x1bc]
je 0x439834
mov eax, dword [ebp - 0x1bc]
movzx ecx, byte [ebp + eax - 0x1a0]
mov edx, dword [ebp - 0x1a8]
movzx eax, byte [ebp + edx - 0x1a0]
xor eax, ecx
mov ecx, dword [ebp - 0x1a8]
mov byte [ebp + ecx - 0x1a0], al
mov edx, dword [ebp - 0x1a8]
movzx eax, byte [ebp + edx - 0x1a0]
mov ecx, dword [ebp - 0x1bc]
movzx edx, byte [ebp + ecx - 0x1a0]
xor edx, eax
mov eax, dword [ebp - 0x1bc]
mov byte [ebp + eax - 0x1a0], dl
mov ecx, dword [ebp - 0x1bc]
movzx edx, byte [ebp + ecx - 0x1a0]
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [ebp + eax - 0x1a0]
xor ecx, edx
mov edx, dword [ebp - 0x1a8]
mov byte [ebp + edx - 0x1a0], cl
jmp 0x43951e
mov al, byte [ebp - 0x19f]
mov byte [ebp - 0x1b3], al
mov cl, byte [ebp - 0x19d]
mov byte [ebp - 0x9d], cl
mov dl, byte [ebp - 0x19b]
mov byte [ebp - 0x1a1], dl
mov al, byte [ebp - 0x199]
mov byte [ebp - 0x1a9], al
movzx ecx, byte [ebp - 0x1b2]
mov dl, byte [ebp + ecx - 0x1a0]
mov byte [ebp - 0x8d], dl
mov dword [ebp - 0x1b0], 0x28
cmp dword [ebp - 0x1b0], 2
jle 0x43b7dc
mov eax, dword [ebp - 0x1b0]
and eax, 1
jne 0x43b7dc
mov dword [ebp - 0x23c], 0
mov dword [ebp - 0x238], 0
mov ecx, dword [ebp - 0x238]
add ecx, 1
mov dword [ebp - 0x238], ecx
mov dword [ebp - 0x1c8], 0
mov edx, dword [ebp - 0x23c]
shl edx, 1
mov dword [ebp - 0x1c8], edx
mov dword [ebp - 0x260], 0
mov eax, dword [ebp - 0x98]
add eax, dword [ebp - 0x1c8]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x260]
mov dword [ebp - 0x260], ecx
mov dword [ebp - 0x1f8], 0
fld qword [0x9c63c8]
fstp qword [ebp - 0x1e0]
fld qword [0x9c63c0]
fstp qword [ebp - 0x248]
fld qword [0x9c63b8]
fstp qword [ebp - 0x208]
fld qword [0x9c63b0]
fstp qword [ebp - 0x250]
fld qword [0x9c63a8]
fstp qword [ebp - 0x288]
fld qword [0x9c63a0]
fstp qword [ebp - 0x220]
fld qword [ebp - 0x288]
fadd qword [ebp - 0x220]
fstp qword [ebp - 0x288]
fld qword [ebp - 0x288]
fadd qword [ebp - 0x220]
fstp qword [ebp - 0x288]
fld qword [ebp - 0x208]
fadd qword [ebp - 0x220]
fstp qword [ebp - 0x208]
fld qword [ebp - 0x248]
fadd qword [ebp - 0x220]
fstp qword [ebp - 0x248]
fld qword [ebp - 0x1e0]
fsub qword [ebp - 0x220]
fstp qword [ebp - 0x1e0]
fld qword [ebp - 0x208]
fadd qword [ebp - 0x220]
fstp qword [ebp - 0x208]
fld qword [ebp - 0x220]
fcomp qword [ebp - 0x208]
fnstsw ax
test ah, 0x41
jne 0x439a42
fld qword [ebp - 0x250]
fsub qword [ebp - 0x220]
fstp qword [ebp - 0x250]
fld qword [ebp - 0x220]
fmul qword [ebp - 0x248]
fstp qword [ebp - 0x220]
fld qword [ebp - 0x1e0]
fdiv qword [ebp - 0x208]
fstp qword [ebp - 0x1e0]
fld qword [ebp - 0x250]
fdiv qword [ebp - 0x220]
fstp qword [ebp - 0x250]
fld qword [ebp - 0x288]
fdiv qword [ebp - 0x1e0]
fstp qword [ebp - 0x288]
fld qword [ebp - 0x220]
fdiv qword [ebp - 0x248]
fstp qword [ebp - 0x220]
jmp 0x439abd
fld qword [ebp - 0x250]
fadd qword [ebp - 0x220]
fstp qword [ebp - 0x250]
fld qword [ebp - 0x208]
fsub qword [ebp - 0x288]
fstp qword [ebp - 0x208]
fld qword [ebp - 0x250]
fadd qword [ebp - 0x220]
fstp qword [ebp - 0x250]
fld qword [ebp - 0x250]
fadd qword [ebp - 0x220]
fstp qword [ebp - 0x250]
fld qword [ebp - 0x250]
fsub qword [ebp - 0x220]
fstp qword [ebp - 0x250]
fld qword [ebp - 0x250]
fsub qword [ebp - 0x220]
fstp qword [ebp - 0x250]
mov edx, dword [ebp - 0x1f8]
add edx, 0x38
mov dword [ebp - 0x1f8], edx
mov dword [ebp - 0x224], 0
mov eax, dword [ebp - 0x23c]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x224], ecx
mov dword [ebp - 0x27c], 0
mov edx, dword [ebp - 0x98]
add edx, dword [ebp - 0x224]
movzx eax, byte [edx]
add eax, dword [ebp - 0x27c]
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x25c], 0
mov ecx, dword [ebp - 0x25c]
add ecx, 0x1a
mov dword [ebp - 0x25c], ecx
mov dword [ebp - 0x278], 0
mov edx, dword [ebp - 0x260]
sub edx, dword [ebp - 0x1f8]
add edx, dword [ebp - 0x278]
mov dword [ebp - 0x278], edx
mov dword [ebp - 0x1d4], 0
mov eax, dword [ebp - 0x27c]
sub eax, dword [ebp - 0x25c]
add eax, dword [ebp - 0x1d4]
mov dword [ebp - 0x1d4], eax
mov dword [ebp - 0x274], 0
mov ecx, dword [ebp - 0x278]
shl ecx, 4
mov dword [ebp - 0x274], ecx
mov dword [ebp - 0x258], 0
mov edx, dword [ebp - 0x1d4]
mov dword [ebp - 0x258], edx
mov dword [ebp - 0x234], 0
mov eax, dword [ebp - 0x274]
or eax, dword [ebp - 0x258]
mov dword [ebp - 0x234], eax
mov byte [ebp - 0x1fd], 0
mov cl, byte [ebp - 0x234]
mov byte [ebp - 0x1fd], cl
mov byte [ebp - 0x26d], 0
movzx edx, byte [ebp - 0x8d]
mov al, byte [ebp + edx - 0x1a0]
mov byte [ebp - 0x26d], al
movzx ecx, byte [ebp - 0x1b3]
movzx edx, byte [ebp + ecx - 0x1a0]
movzx eax, byte [ebp - 0x9d]
add eax, edx
mov byte [ebp - 0x9d], al
mov cl, byte [ebp - 0x1b3]
add cl, 1
mov byte [ebp - 0x1b3], cl
movzx edx, byte [ebp - 0x9d]
movzx eax, byte [ebp - 0x8d]
mov cl, byte [ebp + edx - 0x1a0]
mov byte [ebp + eax - 0x1a0], cl
movzx edx, byte [ebp - 0x1a9]
movzx eax, byte [ebp - 0x9d]
mov cl, byte [ebp + edx - 0x1a0]
mov byte [ebp + eax - 0x1a0], cl
movzx edx, byte [ebp - 0x1b3]
movzx eax, byte [ebp - 0x1a9]
mov cl, byte [ebp + edx - 0x1a0]
mov byte [ebp + eax - 0x1a0], cl
movzx edx, byte [ebp - 0x1b3]
mov al, byte [ebp - 0x26d]
mov byte [ebp + edx - 0x1a0], al
movzx ecx, byte [ebp - 0x26d]
movzx edx, byte [ebp + ecx - 0x1a0]
movzx eax, byte [ebp - 0x1a1]
add eax, edx
mov byte [ebp - 0x1a1], al
movzx ecx, byte [ebp - 0x1fd]
movzx edx, byte [ebp - 0x9d]
movzx eax, byte [ebp + edx - 0x1a0]
movzx edx, byte [ebp - 0x1b3]
movzx edx, byte [ebp + edx - 0x1a0]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1a0]
xor ecx, eax
movzx edx, byte [ebp - 0x1a9]
movzx eax, byte [ebp + edx - 0x1a0]
movzx edx, byte [ebp - 0x8d]
movzx edx, byte [ebp + edx - 0x1a0]
add eax, edx
movzx edx, byte [ebp - 0x1a1]
movzx edx, byte [ebp + edx - 0x1a0]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1a0]
movzx edx, byte [ebp + eax - 0x1a0]
xor ecx, edx
mov byte [ebp - 0x1a9], cl
mov al, byte [ebp - 0x1fd]
mov byte [ebp - 0x8d], al
mov cl, byte [ebp - 0x1a9]
mov byte [ebp - 0x251], cl
cmp dword [ebp - 0x23c], 0
jle 0x439d3a
mov edx, dword [ebp - 0x23c]
mov al, byte [ebp - 0x251]
mov byte [ebp + edx - 0x5d], al
mov ecx, dword [ebp - 0x238]
add ecx, 6
mov dword [ebp - 0x238], ecx
mov edx, dword [ebp - 0x23c]
add edx, 1
mov dword [ebp - 0x28c], edx
jmp 0x439d69
mov eax, dword [ebp - 0x28c]
add eax, 1
mov dword [ebp - 0x28c], eax
mov ecx, dword [ebp - 0x28c]
cmp ecx, dword [ebp - 0x238]
jge 0x43a238
mov edx, dword [ebp - 0x23c]
add edx, 1
mov dword [ebp - 0x23c], edx
mov eax, dword [ebp - 0x23c]
shl eax, 1
mov dword [ebp - 0x1c8], eax
mov ecx, dword [ebp - 0x98]
add ecx, dword [ebp - 0x1c8]
movzx edx, byte [ecx]
mov dword [ebp - 0x260], edx
fld dword [0x9c6398]
fstp dword [ebp - 0x2a8]
fld dword [0x9c6394]
fstp dword [ebp - 0x2a4]
fld dword [0x9c6390]
fstp dword [ebp - 0x2ac]
fld dword [ebp - 0x2a8]
fadd dword [ebp - 0x2ac]
fstp dword [ebp - 0x2a8]
fld dword [ebp - 0x2a4]
fadd dword [ebp - 0x2ac]
fstp dword [ebp - 0x2a4]
fld dword [ebp - 0x2a8]
fmul dword [ebp - 0x2ac]
fstp dword [ebp - 0x2a8]
fld dword [ebp - 0x2ac]
fld dword [ebp - 0x2a8]
fcompp
fnstsw ax
test ah, 0x41
jne 0x439e5e
fld dword [ebp - 0x2ac]
fmul dword [ebp - 0x2a4]
fstp dword [ebp - 0x2ac]
fld dword [ebp - 0x2ac]
fsub dword [ebp - 0x2a4]
fstp dword [ebp - 0x2ac]
fld dword [ebp - 0x2a8]
fadd dword [ebp - 0x2ac]
fstp dword [ebp - 0x2a8]
mov dword [ebp - 0x1f8], 0x38
jmp 0x439e94
fld dword [ebp - 0x2a4]
fadd dword [ebp - 0x2a8]
fstp dword [ebp - 0x2a4]
fld dword [ebp - 0x2ac]
fadd dword [ebp - 0x2a4]
fstp dword [ebp - 0x2ac]
fld dword [ebp - 0x2a8]
fsub dword [ebp - 0x2ac]
fstp dword [ebp - 0x2a8]
mov eax, dword [ebp - 0x23c]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x224], ecx
mov edx, dword [ebp - 0x98]
add edx, dword [ebp - 0x224]
movzx eax, byte [edx]
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x25c], 0x1a
mov ecx, dword [ebp - 0x260]
sub ecx, dword [ebp - 0x1f8]
mov dword [ebp - 0x278], ecx
mov edx, dword [ebp - 0x27c]
sub edx, dword [ebp - 0x25c]
mov dword [ebp - 0x1d4], edx
mov eax, dword [ebp - 0x278]
shl eax, 4
mov dword [ebp - 0x274], eax
mov ecx, dword [ebp - 0x1d4]
mov dword [ebp - 0x258], ecx
mov edx, dword [ebp - 0x274]
or edx, dword [ebp - 0x258]
mov dword [ebp - 0x234], edx
mov al, byte [ebp - 0x234]
mov byte [ebp - 0x1fd], al
movzx ecx, byte [ebp - 0x8d]
mov dl, byte [ebp + ecx - 0x1a0]
mov byte [ebp - 0x26d], dl
movzx eax, byte [ebp - 0x1b3]
movzx ecx, byte [ebp + eax - 0x1a0]
movzx edx, byte [ebp - 0x9d]
add edx, ecx
mov byte [ebp - 0x9d], dl
mov al, byte [ebp - 0x1b3]
add al, 1
mov byte [ebp - 0x1b3], al
movzx ecx, byte [ebp - 0x9d]
movzx edx, byte [ebp - 0x8d]
mov al, byte [ebp + ecx - 0x1a0]
mov byte [ebp + edx - 0x1a0], al
movzx ecx, byte [ebp - 0x1a9]
movzx edx, byte [ebp - 0x9d]
mov al, byte [ebp + ecx - 0x1a0]
mov byte [ebp + edx - 0x1a0], al
movzx ecx, byte [ebp - 0x1b3]
movzx edx, byte [ebp - 0x1a9]
mov al, byte [ebp + ecx - 0x1a0]
mov byte [ebp + edx - 0x1a0], al
movzx ecx, byte [ebp - 0x1b3]
mov dl, byte [ebp - 0x26d]
mov byte [ebp + ecx - 0x1a0], dl
movzx eax, byte [ebp - 0x26d]
movzx ecx, byte [ebp + eax - 0x1a0]
movzx edx, byte [ebp - 0x1a1]
add edx, ecx
mov byte [ebp - 0x1a1], dl
movzx eax, byte [ebp - 0x1fd]
movzx ecx, byte [ebp - 0x9d]
movzx edx, byte [ebp + ecx - 0x1a0]
movzx ecx, byte [ebp - 0x1b3]
movzx ecx, byte [ebp + ecx - 0x1a0]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x1a0]
xor eax, edx
movzx ecx, byte [ebp - 0x1a9]
movzx edx, byte [ebp + ecx - 0x1a0]
movzx ecx, byte [ebp - 0x8d]
movzx ecx, byte [ebp + ecx - 0x1a0]
add edx, ecx
movzx ecx, byte [ebp - 0x1a1]
movzx ecx, byte [ebp + ecx - 0x1a0]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x1a0]
movzx ecx, byte [ebp + edx - 0x1a0]
xor eax, ecx
mov byte [ebp - 0x1a9], al
mov dl, byte [ebp - 0x1fd]
mov byte [ebp - 0x8d], dl
fld qword [0x9c6388]
fstp qword [ebp - 0x298]
fld qword [0x9c6380]
fstp qword [ebp - 0x2a0]
fld qword [0x9c6378]
fstp qword [ebp - 0x2b8]
fld qword [ebp - 0x2a0]
fadd qword [ebp - 0x2b8]
fstp qword [ebp - 0x2a0]
fld qword [ebp - 0x298]
fsub qword [ebp - 0x2b8]
fstp qword [ebp - 0x298]
fld qword [ebp - 0x298]
fadd qword [ebp - 0x2b8]
fstp qword [ebp - 0x298]
fld qword [ebp - 0x2b8]
fcomp qword [ebp - 0x2a0]
fnstsw ax
test ah, 0x41
jne 0x43a1d8
fld qword [ebp - 0x2b8]
fsub qword [ebp - 0x298]
fstp qword [ebp - 0x2b8]
fld qword [ebp - 0x2b8]
fadd qword [ebp - 0x298]
fstp qword [ebp - 0x2b8]
fld qword [ebp - 0x2a0]
fsub qword [ebp - 0x2b8]
fstp qword [ebp - 0x2a0]
fld qword [ebp - 0x2b8]
fadd qword [ebp - 0x2a0]
fstp qword [ebp - 0x2b8]
fld qword [ebp - 0x2b8]
fadd qword [ebp - 0x2a0]
fstp qword [ebp - 0x2b8]
fld qword [ebp - 0x2a0]
fmul qword [ebp - 0x298]
fstp qword [ebp - 0x2a0]
fld qword [ebp - 0x298]
fcomp qword [ebp - 0x2a0]
fnstsw ax
test ah, 0x41
jne 0x43a1a0
fld qword [ebp - 0x2b8]
fadd qword [ebp - 0x298]
fstp qword [ebp - 0x2b8]
fld qword [ebp - 0x298]
fmul qword [ebp - 0x2a0]
fstp qword [ebp - 0x298]
fld qword [ebp - 0x2a0]
fmul qword [ebp - 0x2b8]
fstp qword [ebp - 0x2a0]
jmp 0x43a1d6
fld qword [ebp - 0x298]
fmul qword [ebp - 0x2a0]
fstp qword [ebp - 0x298]
fld qword [ebp - 0x2a0]
fsub qword [ebp - 0x2b8]
fstp qword [ebp - 0x2a0]
fld qword [ebp - 0x298]
fmul qword [ebp - 0x2a0]
fstp qword [ebp - 0x298]
jmp 0x43a21a
fld qword [ebp - 0x298]
fadd qword [ebp - 0x2b8]
fstp qword [ebp - 0x298]
fld qword [ebp - 0x298]
fsub qword [ebp - 0x2b8]
fstp qword [ebp - 0x298]
fld qword [ebp - 0x2b8]
fmul qword [ebp - 0x2a0]
fstp qword [ebp - 0x2b8]
mov al, byte [ebp - 0x1a9]
mov byte [ebp - 0x251], al
cmp dword [ebp - 0x23c], 0
jle 0x43a233
mov ecx, dword [ebp - 0x23c]
mov dl, byte [ebp - 0x251]
mov byte [ebp + ecx - 0x5d], dl
jmp 0x439d5a
mov eax, dword [ebp - 0x238]
add eax, 1
mov dword [ebp - 0x238], eax
mov ecx, dword [ebp - 0x23c]
add ecx, 1
mov dword [ebp - 0x23c], ecx
mov edx, dword [ebp - 0x238]
add edx, 1
mov dword [ebp - 0x238], edx
mov eax, dword [ebp - 0x23c]
shl eax, 1
mov dword [ebp - 0x1c8], eax
mov ecx, dword [ebp - 0x98]
add ecx, dword [ebp - 0x1c8]
movzx edx, byte [ecx]
mov dword [ebp - 0x260], edx
mov dword [ebp - 0x1f8], 0x38
mov eax, dword [ebp - 0x23c]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x224], ecx
mov edx, dword [ebp - 0x98]
add edx, dword [ebp - 0x224]
movzx eax, byte [edx]
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x25c], 0x1a
mov ecx, dword [ebp - 0x260]
sub ecx, dword [ebp - 0x1f8]
mov dword [ebp - 0x278], ecx
mov edx, dword [ebp - 0x27c]
sub edx, dword [ebp - 0x25c]
mov dword [ebp - 0x1d4], edx
mov eax, dword [ebp - 0x278]
shl eax, 4
mov dword [ebp - 0x274], eax
mov ecx, dword [ebp - 0x1d4]
mov dword [ebp - 0x258], ecx
mov edx, dword [ebp - 0x274]
or edx, dword [ebp - 0x258]
mov dword [ebp - 0x234], edx
mov al, byte [ebp - 0x234]
mov byte [ebp - 0x1fd], al
movzx ecx, byte [ebp - 0x8d]
mov dl, byte [ebp + ecx - 0x1a0]
mov byte [ebp - 0x26d], dl
movzx eax, byte [ebp - 0x1b3]
movzx ecx, byte [ebp + eax - 0x1a0]
movzx edx, byte [ebp - 0x9d]
add edx, ecx
mov byte [ebp - 0x9d], dl
mov al, byte [ebp - 0x1b3]
add al, 1
mov byte [ebp - 0x1b3], al
movzx ecx, byte [ebp - 0x9d]
movzx edx, byte [ebp - 0x8d]
mov al, byte [ebp + ecx - 0x1a0]
mov byte [ebp + edx - 0x1a0], al
movzx ecx, byte [ebp - 0x1a9]
movzx edx, byte [ebp - 0x9d]
mov al, byte [ebp + ecx - 0x1a0]
mov byte [ebp + edx - 0x1a0], al
movzx ecx, byte [ebp - 0x1b3]
movzx edx, byte [ebp - 0x1a9]
mov al, byte [ebp + ecx - 0x1a0]
mov byte [ebp + edx - 0x1a0], al
movzx ecx, byte [ebp - 0x1b3]
mov dl, byte [ebp - 0x26d]
mov byte [ebp + ecx - 0x1a0], dl
movzx eax, byte [ebp - 0x26d]
movzx ecx, byte [ebp + eax - 0x1a0]
movzx edx, byte [ebp - 0x1a1]
add edx, ecx
mov byte [ebp - 0x1a1], dl
movzx eax, byte [ebp - 0x1fd]
movzx ecx, byte [ebp - 0x9d]
movzx edx, byte [ebp + ecx - 0x1a0]
movzx ecx, byte [ebp - 0x1b3]
movzx ecx, byte [ebp + ecx - 0x1a0]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x1a0]
xor eax, edx
movzx ecx, byte [ebp - 0x1a9]
movzx edx, byte [ebp + ecx - 0x1a0]
movzx ecx, byte [ebp - 0x8d]
movzx ecx, byte [ebp + ecx - 0x1a0]
add edx, ecx
movzx ecx, byte [ebp - 0x1a1]
movzx ecx, byte [ebp + ecx - 0x1a0]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x1a0]
movzx ecx, byte [ebp + edx - 0x1a0]
xor eax, ecx
mov byte [ebp - 0x1a9], al
mov dl, byte [ebp - 0x1fd]
mov byte [ebp - 0x8d], dl
mov al, byte [ebp - 0x1a9]
mov byte [ebp - 0x251], al
cmp dword [ebp - 0x23c], 0
jle 0x43a49b
mov ecx, dword [ebp - 0x23c]
mov dl, byte [ebp - 0x251]
mov byte [ebp + ecx - 0x5d], dl
mov eax, dword [ebp - 0x23c]
add eax, 1
mov dword [ebp - 0x23c], eax
mov ecx, dword [ebp - 0x238]
add ecx, 1
mov dword [ebp - 0x238], ecx
mov edx, dword [ebp - 0x23c]
shl edx, 1
mov dword [ebp - 0x1c8], edx
mov eax, dword [ebp - 0x98]
add eax, dword [ebp - 0x1c8]
movzx ecx, byte [eax]
mov dword [ebp - 0x260], ecx
mov dword [ebp - 0x1f8], 0x38
mov edx, dword [ebp - 0x23c]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x224], eax
mov ecx, dword [ebp - 0x98]
add ecx, dword [ebp - 0x224]
movzx edx, byte [ecx]
mov dword [ebp - 0x27c], edx
mov dword [ebp - 0x25c], 0x1a
mov eax, dword [ebp - 0x260]
sub eax, dword [ebp - 0x1f8]
mov dword [ebp - 0x278], eax
mov ecx, dword [ebp - 0x27c]
sub ecx, dword [ebp - 0x25c]
mov dword [ebp - 0x1d4], ecx
mov edx, dword [ebp - 0x278]
shl edx, 4
mov dword [ebp - 0x274], edx
mov eax, dword [ebp - 0x1d4]
mov dword [ebp - 0x258], eax
mov ecx, dword [ebp - 0x274]
or ecx, dword [ebp - 0x258]
mov dword [ebp - 0x234], ecx
mov dl, byte [ebp - 0x234]
mov byte [ebp - 0x1fd], dl
movzx eax, byte [ebp - 0x8d]
mov cl, byte [ebp + eax - 0x1a0]
mov byte [ebp - 0x26d], cl
movzx edx, byte [ebp - 0x1b3]
movzx eax, byte [ebp + edx - 0x1a0]
movzx ecx, byte [ebp - 0x9d]
add ecx, eax
mov byte [ebp - 0x9d], cl
mov dl, byte [ebp - 0x1b3]
add dl, 1
mov byte [ebp - 0x1b3], dl
movzx eax, byte [ebp - 0x9d]
movzx ecx, byte [ebp - 0x8d]
mov dl, byte [ebp + eax - 0x1a0]
mov byte [ebp + ecx - 0x1a0], dl
movzx eax, byte [ebp - 0x1a9]
movzx ecx, byte [ebp - 0x9d]
mov dl, byte [ebp + eax - 0x1a0]
mov byte [ebp + ecx - 0x1a0], dl
movzx eax, byte [ebp - 0x1b3]
movzx ecx, byte [ebp - 0x1a9]
mov dl, byte [ebp + eax - 0x1a0]
mov byte [ebp + ecx - 0x1a0], dl
movzx eax, byte [ebp - 0x1b3]
mov cl, byte [ebp - 0x26d]
mov byte [ebp + eax - 0x1a0], cl
movzx edx, byte [ebp - 0x26d]
movzx eax, byte [ebp + edx - 0x1a0]
movzx ecx, byte [ebp - 0x1a1]
add ecx, eax
mov byte [ebp - 0x1a1], cl
movzx edx, byte [ebp - 0x1fd]
movzx eax, byte [ebp - 0x9d]
movzx ecx, byte [ebp + eax - 0x1a0]
movzx eax, byte [ebp - 0x1b3]
movzx eax, byte [ebp + eax - 0x1a0]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x1a0]
xor edx, ecx
movzx eax, byte [ebp - 0x1a9]
movzx ecx, byte [ebp + eax - 0x1a0]
movzx eax, byte [ebp - 0x8d]
movzx eax, byte [ebp + eax - 0x1a0]
add ecx, eax
movzx eax, byte [ebp - 0x1a1]
movzx eax, byte [ebp + eax - 0x1a0]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x1a0]
movzx eax, byte [ebp + ecx - 0x1a0]
xor edx, eax
mov byte [ebp - 0x1a9], dl
mov cl, byte [ebp - 0x1fd]
mov byte [ebp - 0x8d], cl
fld dword [0x9c6374]
fstp dword [ebp - 0x228]
fld dword [0x9c6370]
fstp dword [ebp - 0x1f4]
fld dword [0x9c636c]
fstp dword [ebp - 0x1fc]
fld dword [0x9c6368]
fstp dword [ebp - 0x1c4]
fld dword [0x9c6364]
fstp dword [ebp - 0x268]
fld dword [0x9c6360]
fstp dword [ebp - 0x1e8]
fld dword [ebp - 0x1f4]
fmul dword [ebp - 0x1e8]
fstp dword [ebp - 0x1f4]
fld dword [ebp - 0x1fc]
fsub dword [ebp - 0x1e8]
fstp dword [ebp - 0x1fc]
fld dword [ebp - 0x1f4]
fsub dword [ebp - 0x1e8]
fstp dword [ebp - 0x1f4]
fld dword [ebp - 0x228]
fmul dword [ebp - 0x1e8]
fstp dword [ebp - 0x228]
fld dword [ebp - 0x228]
fmul dword [ebp - 0x1e8]
fstp dword [ebp - 0x228]
fld dword [ebp - 0x228]
fmul dword [ebp - 0x1e8]
fstp dword [ebp - 0x228]
fld dword [ebp - 0x1e8]
fld dword [ebp - 0x228]
fcompp
fnstsw ax
test ah, 0x41
jne 0x43a80e
fld dword [ebp - 0x228]
fadd dword [ebp - 0x1f4]
fstp dword [ebp - 0x228]
fld dword [ebp - 0x1f4]
fadd dword [ebp - 0x1fc]
fstp dword [ebp - 0x1f4]
fld dword [ebp - 0x1f4]
fsub dword [ebp - 0x1fc]
fstp dword [ebp - 0x1f4]
fld dword [ebp - 0x1c4]
fsub dword [ebp - 0x268]
fstp dword [ebp - 0x1c4]
fld dword [ebp - 0x1c4]
fadd dword [ebp - 0x268]
fstp dword [ebp - 0x1c4]
fld dword [ebp - 0x1e8]
fmul dword [ebp - 0x228]
fstp dword [ebp - 0x1e8]
mov dl, byte [ebp - 0x1a9]
mov byte [ebp - 0x251], dl
jmp 0x43a87a
fld dword [ebp - 0x1f4]
fsub dword [ebp - 0x1fc]
fstp dword [ebp - 0x1f4]
fld dword [ebp - 0x268]
fmul dword [ebp - 0x1e8]
fstp dword [ebp - 0x268]
fld dword [ebp - 0x1e8]
fadd dword [ebp - 0x228]
fstp dword [ebp - 0x1e8]
fld dword [ebp - 0x228]
fsub dword [ebp - 0x1f4]
fstp dword [ebp - 0x228]
fld dword [ebp - 0x228]
fdiv dword [ebp - 0x1f4]
fstp dword [ebp - 0x228]
fld dword [ebp - 0x1f4]
fmul dword [ebp - 0x1fc]
fstp dword [ebp - 0x1f4]
cmp dword [ebp - 0x23c], 0
jle 0x43a893
mov eax, dword [ebp - 0x23c]
mov cl, byte [ebp - 0x251]
mov byte [ebp + eax - 0x5d], cl
mov edx, dword [ebp - 0x238]
add edx, 7
mov dword [ebp - 0x238], edx
mov eax, dword [ebp - 0x23c]
add eax, 1
mov dword [ebp - 0x2bc], eax
jmp 0x43a8c2
mov ecx, dword [ebp - 0x2bc]
add ecx, 1
mov dword [ebp - 0x2bc], ecx
mov edx, dword [ebp - 0x2bc]
cmp edx, dword [ebp - 0x238]
jge 0x43ac3c
mov eax, dword [ebp - 0x23c]
add eax, 1
mov dword [ebp - 0x23c], eax
mov ecx, dword [ebp - 0x23c]
shl ecx, 1
mov dword [ebp - 0x1c8], ecx
mov edx, dword [ebp - 0x98]
add edx, dword [ebp - 0x1c8]
movzx eax, byte [edx]
mov dword [ebp - 0x260], eax
mov dword [ebp - 0x1f8], 0x38
mov ecx, dword [ebp - 0x23c]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x224], edx
mov eax, dword [ebp - 0x98]
add eax, dword [ebp - 0x224]
movzx ecx, byte [eax]
mov dword [ebp - 0x27c], ecx
mov dword [ebp - 0x25c], 0x1a
mov edx, dword [ebp - 0x260]
sub edx, dword [ebp - 0x1f8]
mov dword [ebp - 0x278], edx
mov eax, dword [ebp - 0x27c]
sub eax, dword [ebp - 0x25c]
mov dword [ebp - 0x1d4], eax
mov ecx, dword [ebp - 0x278]
shl ecx, 4
mov dword [ebp - 0x274], ecx
mov edx, dword [ebp - 0x1d4]
mov dword [ebp - 0x258], edx
mov eax, dword [ebp - 0x274]
or eax, dword [ebp - 0x258]
mov dword [ebp - 0x234], eax
mov cl, byte [ebp - 0x234]
mov byte [ebp - 0x1fd], cl
movzx edx, byte [ebp - 0x8d]
mov al, byte [ebp + edx - 0x1a0]
mov byte [ebp - 0x26d], al
movzx ecx, byte [ebp - 0x1b3]
movzx edx, byte [ebp + ecx - 0x1a0]
movzx eax, byte [ebp - 0x9d]
add eax, edx
mov byte [ebp - 0x9d], al
mov cl, byte [ebp - 0x1b3]
add cl, 1
mov byte [ebp - 0x1b3], cl
movzx edx, byte [ebp - 0x9d]
movzx eax, byte [ebp - 0x8d]
mov cl, byte [ebp + edx - 0x1a0]
mov byte [ebp + eax - 0x1a0], cl
fld dword [0x9c635c]
fstp dword [ebp - 0x2c4]
fld dword [0x9c6358]
fstp dword [ebp - 0x2c8]
fld dword [0x9c6354]
fstp dword [ebp - 0x2cc]
fld dword [0x9c6350]
fstp dword [ebp - 0x2c0]
fld dword [ebp - 0x2cc]
fmul dword [ebp - 0x2c0]
fstp dword [ebp - 0x2cc]
fld dword [ebp - 0x2c8]
fsub dword [ebp - 0x2c0]
fstp dword [ebp - 0x2c8]
fld dword [ebp - 0x2c8]
fsub dword [ebp - 0x2c0]
fstp dword [ebp - 0x2c8]
fld dword [ebp - 0x2c8]
fmul dword [ebp - 0x2c0]
fstp dword [ebp - 0x2c8]
fld dword [ebp - 0x2cc]
fld dword [ebp - 0x2c0]
fcompp
fnstsw ax
test ah, 5
jp 0x43aaec
fld dword [ebp - 0x2c0]
fmul dword [ebp - 0x2c4]
fstp dword [ebp - 0x2c0]
fld dword [ebp - 0x2c8]
fmul dword [ebp - 0x2cc]
fstp dword [ebp - 0x2c8]
fld dword [ebp - 0x2cc]
fmul dword [ebp - 0x2c0]
fstp dword [ebp - 0x2cc]
fld dword [ebp - 0x2c0]
fmul dword [ebp - 0x2c4]
fstp dword [ebp - 0x2c0]
movzx edx, byte [ebp - 0x1a9]
movzx eax, byte [ebp - 0x9d]
mov cl, byte [ebp + edx - 0x1a0]
mov byte [ebp + eax - 0x1a0], cl
jmp 0x43ab34
fld dword [ebp - 0x2c0]
fdiv dword [ebp - 0x2c8]
fstp dword [ebp - 0x2c0]
fld dword [ebp - 0x2cc]
fdiv dword [ebp - 0x2c4]
fstp dword [ebp - 0x2cc]
fld dword [ebp - 0x2cc]
fdiv dword [ebp - 0x2c4]
fstp dword [ebp - 0x2cc]
fld dword [ebp - 0x2c4]
fsub dword [ebp - 0x2cc]
fstp dword [ebp - 0x2c4]
movzx edx, byte [ebp - 0x1b3]
movzx eax, byte [ebp - 0x1a9]
mov cl, byte [ebp + edx - 0x1a0]
mov byte [ebp + eax - 0x1a0], cl
movzx edx, byte [ebp - 0x1b3]
mov al, byte [ebp - 0x26d]
mov byte [ebp + edx - 0x1a0], al
movzx ecx, byte [ebp - 0x26d]
movzx edx, byte [ebp + ecx - 0x1a0]
movzx eax, byte [ebp - 0x1a1]
add eax, edx
mov byte [ebp - 0x1a1], al
movzx ecx, byte [ebp - 0x1fd]
movzx edx, byte [ebp - 0x9d]
movzx eax, byte [ebp + edx - 0x1a0]
movzx edx, byte [ebp - 0x1b3]
movzx edx, byte [ebp + edx - 0x1a0]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1a0]
xor ecx, eax
movzx edx, byte [ebp - 0x1a9]
movzx eax, byte [ebp + edx - 0x1a0]
movzx edx, byte [ebp - 0x8d]
movzx edx, byte [ebp + edx - 0x1a0]
add eax, edx
movzx edx, byte [ebp - 0x1a1]
movzx edx, byte [ebp + edx - 0x1a0]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1a0]
movzx edx, byte [ebp + eax - 0x1a0]
xor ecx, edx
mov byte [ebp - 0x1a9], cl
mov al, byte [ebp - 0x1fd]
mov byte [ebp - 0x8d], al
mov cl, byte [ebp - 0x1a9]
mov byte [ebp - 0x251], cl
cmp dword [ebp - 0x23c], 0
jle 0x43ac37
mov edx, dword [ebp - 0x23c]
mov al, byte [ebp - 0x251]
mov byte [ebp + edx - 0x5d], al
jmp 0x43a8b3
mov ecx, dword [ebp - 0x238]
add ecx, 1
mov dword [ebp - 0x238], ecx
mov edx, dword [ebp - 0x23c]
add edx, 1
mov dword [ebp - 0x23c], edx
mov eax, dword [ebp - 0x238]
add eax, 1
mov dword [ebp - 0x238], eax
mov ecx, dword [ebp - 0x23c]
shl ecx, 1
mov dword [ebp - 0x1c8], ecx
mov edx, dword [ebp - 0x98]
add edx, dword [ebp - 0x1c8]
movzx eax, byte [edx]
mov dword [ebp - 0x260], eax
mov dword [ebp - 0x1f8], 0x38
mov ecx, dword [ebp - 0x23c]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x224], edx
fld dword [0x9c634c]
fstp dword [ebp - 0x264]
fld dword [0x9c6348]
fstp dword [ebp - 0x1e4]
fld dword [0x9c6344]
fstp dword [ebp - 0x214]
fld dword [0x9c6340]
fstp dword [ebp - 0x26c]
fld dword [ebp - 0x1e4]
fsub dword [ebp - 0x26c]
fstp dword [ebp - 0x1e4]
fld dword [ebp - 0x214]
fadd dword [ebp - 0x26c]
fstp dword [ebp - 0x214]
fld dword [ebp - 0x264]
fmul dword [ebp - 0x26c]
fstp dword [ebp - 0x264]
fld dword [ebp - 0x1e4]
fadd dword [ebp - 0x26c]
fstp dword [ebp - 0x1e4]
fld dword [ebp - 0x26c]
fld dword [ebp - 0x264]
fcompp
fnstsw ax
test ah, 0x41
jne 0x43ad92
fld dword [ebp - 0x214]
fadd dword [ebp - 0x264]
fstp dword [ebp - 0x214]
fld dword [ebp - 0x214]
fadd dword [ebp - 0x264]
fstp dword [ebp - 0x214]
fld dword [ebp - 0x264]
fadd dword [ebp - 0x214]
fstp dword [ebp - 0x264]
fld dword [ebp - 0x264]
fsub dword [ebp - 0x214]
fstp dword [ebp - 0x264]
mov eax, dword [ebp - 0x98]
add eax, dword [ebp - 0x224]
movzx ecx, byte [eax]
mov dword [ebp - 0x27c], ecx
jmp 0x43adda
fld dword [ebp - 0x264]
fadd dword [ebp - 0x1e4]
fstp dword [ebp - 0x264]
fld dword [ebp - 0x264]
fadd dword [ebp - 0x1e4]
fstp dword [ebp - 0x264]
fld dword [ebp - 0x264]
fmul dword [ebp - 0x1e4]
fstp dword [ebp - 0x264]
fld dword [ebp - 0x264]
fadd dword [ebp - 0x1e4]
fstp dword [ebp - 0x264]
mov dword [ebp - 0x25c], 0x1a
mov edx, dword [ebp - 0x260]
sub edx, dword [ebp - 0x1f8]
mov dword [ebp - 0x278], edx
mov eax, dword [ebp - 0x27c]
sub eax, dword [ebp - 0x25c]
mov dword [ebp - 0x1d4], eax
mov ecx, dword [ebp - 0x278]
shl ecx, 4
mov dword [ebp - 0x274], ecx
mov edx, dword [ebp - 0x1d4]
mov dword [ebp - 0x258], edx
mov eax, dword [ebp - 0x274]
or eax, dword [ebp - 0x258]
mov dword [ebp - 0x234], eax
mov cl, byte [ebp - 0x234]
mov byte [ebp - 0x1fd], cl
movzx edx, byte [ebp - 0x8d]
mov al, byte [ebp + edx - 0x1a0]
mov byte [ebp - 0x26d], al
movzx ecx, byte [ebp - 0x1b3]
movzx edx, byte [ebp + ecx - 0x1a0]
movzx eax, byte [ebp - 0x9d]
add eax, edx
mov byte [ebp - 0x9d], al
mov cl, byte [ebp - 0x1b3]
add cl, 1
mov byte [ebp - 0x1b3], cl
movzx edx, byte [ebp - 0x9d]
movzx eax, byte [ebp - 0x8d]
mov cl, byte [ebp + edx - 0x1a0]
mov byte [ebp + eax - 0x1a0], cl
movzx edx, byte [ebp - 0x1a9]
movzx eax, byte [ebp - 0x9d]
mov cl, byte [ebp + edx - 0x1a0]
mov byte [ebp + eax - 0x1a0], cl
movzx edx, byte [ebp - 0x1b3]
movzx eax, byte [ebp - 0x1a9]
mov cl, byte [ebp + edx - 0x1a0]
mov byte [ebp + eax - 0x1a0], cl
movzx edx, byte [ebp - 0x1b3]
mov al, byte [ebp - 0x26d]
mov byte [ebp + edx - 0x1a0], al
movzx ecx, byte [ebp - 0x26d]
movzx edx, byte [ebp + ecx - 0x1a0]
movzx eax, byte [ebp - 0x1a1]
add eax, edx
mov byte [ebp - 0x1a1], al
movzx ecx, byte [ebp - 0x1fd]
movzx edx, byte [ebp - 0x9d]
movzx eax, byte [ebp + edx - 0x1a0]
movzx edx, byte [ebp - 0x1b3]
movzx edx, byte [ebp + edx - 0x1a0]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1a0]
xor ecx, eax
movzx edx, byte [ebp - 0x1a9]
movzx eax, byte [ebp + edx - 0x1a0]
movzx edx, byte [ebp - 0x8d]
movzx edx, byte [ebp + edx - 0x1a0]
add eax, edx
movzx edx, byte [ebp - 0x1a1]
movzx edx, byte [ebp + edx - 0x1a0]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1a0]
movzx edx, byte [ebp + eax - 0x1a0]
xor ecx, edx
mov byte [ebp - 0x1a9], cl
mov al, byte [ebp - 0x1fd]
mov byte [ebp - 0x8d], al
mov cl, byte [ebp - 0x1a9]
mov byte [ebp - 0x251], cl
cmp dword [ebp - 0x23c], 0
jle 0x43afbd
mov edx, dword [ebp - 0x23c]
mov al, byte [ebp - 0x251]
mov byte [ebp + edx - 0x5d], al
mov ecx, dword [ebp - 0x23c]
add ecx, 1
mov dword [ebp - 0x23c], ecx
mov edx, dword [ebp - 0x238]
add edx, 1
mov dword [ebp - 0x238], edx
mov eax, dword [ebp - 0x23c]
shl eax, 1
mov dword [ebp - 0x1c8], eax
mov ecx, dword [ebp - 0x98]
add ecx, dword [ebp - 0x1c8]
movzx edx, byte [ecx]
mov dword [ebp - 0x260], edx
mov dword [ebp - 0x1f8], 0x38
mov eax, dword [ebp - 0x23c]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x224], ecx
mov edx, dword [ebp - 0x98]
add edx, dword [ebp - 0x224]
movzx eax, byte [edx]
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x25c], 0x1a
mov ecx, dword [ebp - 0x260]
sub ecx, dword [ebp - 0x1f8]
mov dword [ebp - 0x278], ecx
mov edx, dword [ebp - 0x27c]
sub edx, dword [ebp - 0x25c]
mov dword [ebp - 0x1d4], edx
mov eax, dword [ebp - 0x278]
shl eax, 4
mov dword [ebp - 0x274], eax
mov ecx, dword [ebp - 0x1d4]
mov dword [ebp - 0x258], ecx
mov edx, dword [ebp - 0x274]
or edx, dword [ebp - 0x258]
mov dword [ebp - 0x234], edx
mov al, byte [ebp - 0x234]
mov byte [ebp - 0x1fd], al
movzx ecx, byte [ebp - 0x8d]
mov dl, byte [ebp + ecx - 0x1a0]
mov byte [ebp - 0x26d], dl
movzx eax, byte [ebp - 0x1b3]
movzx ecx, byte [ebp + eax - 0x1a0]
movzx edx, byte [ebp - 0x9d]
add edx, ecx
mov byte [ebp - 0x9d], dl
mov al, byte [ebp - 0x1b3]
add al, 1
mov byte [ebp - 0x1b3], al
movzx ecx, byte [ebp - 0x9d]
movzx edx, byte [ebp - 0x8d]
mov al, byte [ebp + ecx - 0x1a0]
mov byte [ebp + edx - 0x1a0], al
movzx ecx, byte [ebp - 0x1a9]
movzx edx, byte [ebp - 0x9d]
mov al, byte [ebp + ecx - 0x1a0]
mov byte [ebp + edx - 0x1a0], al
movzx ecx, byte [ebp - 0x1b3]
movzx edx, byte [ebp - 0x1a9]
mov al, byte [ebp + ecx - 0x1a0]
mov byte [ebp + edx - 0x1a0], al
movzx ecx, byte [ebp - 0x1b3]
mov dl, byte [ebp - 0x26d]
mov byte [ebp + ecx - 0x1a0], dl
movzx eax, byte [ebp - 0x26d]
movzx ecx, byte [ebp + eax - 0x1a0]
movzx edx, byte [ebp - 0x1a1]
add edx, ecx
mov byte [ebp - 0x1a1], dl
movzx eax, byte [ebp - 0x1fd]
movzx ecx, byte [ebp - 0x9d]
movzx edx, byte [ebp + ecx - 0x1a0]
movzx ecx, byte [ebp - 0x1b3]
movzx ecx, byte [ebp + ecx - 0x1a0]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x1a0]
xor eax, edx
movzx ecx, byte [ebp - 0x1a9]
movzx edx, byte [ebp + ecx - 0x1a0]
movzx ecx, byte [ebp - 0x8d]
movzx ecx, byte [ebp + ecx - 0x1a0]
add edx, ecx
movzx ecx, byte [ebp - 0x1a1]
movzx ecx, byte [ebp + ecx - 0x1a0]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x1a0]
movzx ecx, byte [ebp + edx - 0x1a0]
xor eax, ecx
mov byte [ebp - 0x1a9], al
mov dl, byte [ebp - 0x1fd]
mov byte [ebp - 0x8d], dl
mov al, byte [ebp - 0x1a9]
mov byte [ebp - 0x251], al
cmp dword [ebp - 0x23c], 0
jle 0x43b211
mov ecx, dword [ebp - 0x23c]
mov dl, byte [ebp - 0x251]
mov byte [ebp + ecx - 0x5d], dl
mov eax, dword [ebp - 0x23c]
add eax, 1
mov dword [ebp - 0x23c], eax
mov ecx, dword [ebp - 0x238]
add ecx, 1
mov dword [ebp - 0x238], ecx
fld qword [0x9c6338]
fstp qword [ebp - 0x1d0]
fld qword [0x9c6330]
fstp qword [ebp - 0x1f0]
fld qword [0x9c6328]
fstp qword [ebp - 0x210]
fld qword [0x9c6320]
fstp qword [ebp - 0x230]
fld qword [ebp - 0x1f0]
fsub qword [ebp - 0x230]
fstp qword [ebp - 0x1f0]
fld qword [ebp - 0x1f0]
fadd qword [ebp - 0x230]
fstp qword [ebp - 0x1f0]
fld qword [ebp - 0x210]
fadd qword [ebp - 0x230]
fstp qword [ebp - 0x210]
fld qword [ebp - 0x210]
fsub qword [ebp - 0x230]
fstp qword [ebp - 0x210]
fld qword [ebp - 0x1d0]
fcomp qword [ebp - 0x230]
fnstsw ax
test ah, 0x41
jne 0x43b312
fld qword [ebp - 0x1d0]
fadd qword [ebp - 0x1f0]
fstp qword [ebp - 0x1d0]
fld qword [ebp - 0x1f0]
fadd qword [ebp - 0x210]
fstp qword [ebp - 0x1f0]
fld qword [ebp - 0x230]
fadd qword [ebp - 0x1d0]
fstp qword [ebp - 0x230]
fld qword [ebp - 0x1f0]
fadd qword [ebp - 0x210]
fstp qword [ebp - 0x1f0]
mov edx, dword [ebp - 0x23c]
shl edx, 1
mov dword [ebp - 0x1c8], edx
jmp 0x43b35a
fld qword [ebp - 0x230]
fdiv qword [ebp - 0x1d0]
fstp qword [ebp - 0x230]
fld qword [ebp - 0x230]
fsub qword [ebp - 0x1d0]
fstp qword [ebp - 0x230]
fld qword [ebp - 0x1d0]
fsub qword [ebp - 0x1f0]
fstp qword [ebp - 0x1d0]
fld qword [ebp - 0x1f0]
fmul qword [ebp - 0x210]
fstp qword [ebp - 0x1f0]
mov eax, dword [ebp - 0x98]
add eax, dword [ebp - 0x1c8]
movzx ecx, byte [eax]
mov dword [ebp - 0x260], ecx
mov dword [ebp - 0x1f8], 0x38
mov edx, dword [ebp - 0x23c]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x224], eax
mov ecx, dword [ebp - 0x98]
add ecx, dword [ebp - 0x224]
movzx edx, byte [ecx]
mov dword [ebp - 0x27c], edx
mov dword [ebp - 0x25c], 0x1a
mov eax, dword [ebp - 0x260]
sub eax, dword [ebp - 0x1f8]
mov dword [ebp - 0x278], eax
mov ecx, dword [ebp - 0x27c]
sub ecx, dword [ebp - 0x25c]
mov dword [ebp - 0x1d4], ecx
mov edx, dword [ebp - 0x278]
shl edx, 4
mov dword [ebp - 0x274], edx
mov eax, dword [ebp - 0x1d4]
mov dword [ebp - 0x258], eax
mov ecx, dword [ebp - 0x274]
or ecx, dword [ebp - 0x258]
mov dword [ebp - 0x234], ecx
mov dl, byte [ebp - 0x234]
mov byte [ebp - 0x1fd], dl
movzx eax, byte [ebp - 0x8d]
mov cl, byte [ebp + eax - 0x1a0]
mov byte [ebp - 0x26d], cl
movzx edx, byte [ebp - 0x1b3]
movzx eax, byte [ebp + edx - 0x1a0]
movzx ecx, byte [ebp - 0x9d]
add ecx, eax
mov byte [ebp - 0x9d], cl
mov dl, byte [ebp - 0x1b3]
add dl, 1
mov byte [ebp - 0x1b3], dl
movzx eax, byte [ebp - 0x9d]
movzx ecx, byte [ebp - 0x8d]
mov dl, byte [ebp + eax - 0x1a0]
mov byte [ebp + ecx - 0x1a0], dl
movzx eax, byte [ebp - 0x1a9]
movzx ecx, byte [ebp - 0x9d]
mov dl, byte [ebp + eax - 0x1a0]
mov byte [ebp + ecx - 0x1a0], dl
movzx eax, byte [ebp - 0x1b3]
movzx ecx, byte [ebp - 0x1a9]
mov dl, byte [ebp + eax - 0x1a0]
mov byte [ebp + ecx - 0x1a0], dl
movzx eax, byte [ebp - 0x1b3]
mov cl, byte [ebp - 0x26d]
mov byte [ebp + eax - 0x1a0], cl
movzx edx, byte [ebp - 0x26d]
movzx eax, byte [ebp + edx - 0x1a0]
movzx ecx, byte [ebp - 0x1a1]
add ecx, eax
mov byte [ebp - 0x1a1], cl
movzx edx, byte [ebp - 0x1fd]
movzx eax, byte [ebp - 0x9d]
movzx ecx, byte [ebp + eax - 0x1a0]
movzx eax, byte [ebp - 0x1b3]
movzx eax, byte [ebp + eax - 0x1a0]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x1a0]
xor edx, ecx
movzx eax, byte [ebp - 0x1a9]
movzx ecx, byte [ebp + eax - 0x1a0]
movzx eax, byte [ebp - 0x8d]
movzx eax, byte [ebp + eax - 0x1a0]
add ecx, eax
movzx eax, byte [ebp - 0x1a1]
movzx eax, byte [ebp + eax - 0x1a0]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x1a0]
movzx eax, byte [ebp + ecx - 0x1a0]
xor edx, eax
mov byte [ebp - 0x1a9], dl
mov cl, byte [ebp - 0x1fd]
mov byte [ebp - 0x8d], cl
mov dl, byte [ebp - 0x1a9]
mov byte [ebp - 0x251], dl
cmp dword [ebp - 0x23c], 0
jle 0x43b583
mov eax, dword [ebp - 0x23c]
mov cl, byte [ebp - 0x251]
mov byte [ebp + eax - 0x5d], cl
mov edx, dword [ebp - 0x23c]
add edx, 1
mov dword [ebp - 0x23c], edx
mov eax, dword [ebp - 0x238]
add eax, 1
mov dword [ebp - 0x238], eax
mov ecx, dword [ebp - 0x23c]
shl ecx, 1
mov dword [ebp - 0x1c8], ecx
mov edx, dword [ebp - 0x98]
add edx, dword [ebp - 0x1c8]
movzx eax, byte [edx]
mov dword [ebp - 0x260], eax
mov dword [ebp - 0x1f8], 0x38
mov ecx, dword [ebp - 0x23c]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x224], edx
mov eax, dword [ebp - 0x98]
add eax, dword [ebp - 0x224]
movzx ecx, byte [eax]
mov dword [ebp - 0x27c], ecx
mov dword [ebp - 0x25c], 0x1a
mov edx, dword [ebp - 0x260]
sub edx, dword [ebp - 0x1f8]
mov dword [ebp - 0x278], edx
mov eax, dword [ebp - 0x27c]
sub eax, dword [ebp - 0x25c]
mov dword [ebp - 0x1d4], eax
mov ecx, dword [ebp - 0x278]
shl ecx, 4
mov dword [ebp - 0x274], ecx
mov edx, dword [ebp - 0x1d4]
mov dword [ebp - 0x258], edx
mov eax, dword [ebp - 0x274]
or eax, dword [ebp - 0x258]
mov dword [ebp - 0x234], eax
mov cl, byte [ebp - 0x234]
mov byte [ebp - 0x1fd], cl
movzx edx, byte [ebp - 0x8d]
mov al, byte [ebp + edx - 0x1a0]
mov byte [ebp - 0x26d], al
movzx ecx, byte [ebp - 0x1b3]
movzx edx, byte [ebp + ecx - 0x1a0]
movzx eax, byte [ebp - 0x9d]
add eax, edx
mov byte [ebp - 0x9d], al
mov cl, byte [ebp - 0x1b3]
add cl, 1
mov byte [ebp - 0x1b3], cl
movzx edx, byte [ebp - 0x9d]
movzx eax, byte [ebp - 0x8d]
mov cl, byte [ebp + edx - 0x1a0]
mov byte [ebp + eax - 0x1a0], cl
movzx edx, byte [ebp - 0x1a9]
movzx eax, byte [ebp - 0x9d]
mov cl, byte [ebp + edx - 0x1a0]
mov byte [ebp + eax - 0x1a0], cl
movzx edx, byte [ebp - 0x1b3]
movzx eax, byte [ebp - 0x1a9]
mov cl, byte [ebp + edx - 0x1a0]
mov byte [ebp + eax - 0x1a0], cl
movzx edx, byte [ebp - 0x1b3]
mov al, byte [ebp - 0x26d]
mov byte [ebp + edx - 0x1a0], al
movzx ecx, byte [ebp - 0x26d]
movzx edx, byte [ebp + ecx - 0x1a0]
movzx eax, byte [ebp - 0x1a1]
add eax, edx
mov byte [ebp - 0x1a1], al
movzx ecx, byte [ebp - 0x1fd]
movzx edx, byte [ebp - 0x9d]
movzx eax, byte [ebp + edx - 0x1a0]
movzx edx, byte [ebp - 0x1b3]
movzx edx, byte [ebp + edx - 0x1a0]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1a0]
xor ecx, eax
movzx edx, byte [ebp - 0x1a9]
movzx eax, byte [ebp + edx - 0x1a0]
movzx edx, byte [ebp - 0x8d]
movzx edx, byte [ebp + edx - 0x1a0]
add eax, edx
movzx edx, byte [ebp - 0x1a1]
movzx edx, byte [ebp + edx - 0x1a0]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1a0]
movzx edx, byte [ebp + eax - 0x1a0]
xor ecx, edx
mov byte [ebp - 0x1a9], cl
mov al, byte [ebp - 0x1fd]
mov byte [ebp - 0x8d], al
mov cl, byte [ebp - 0x1a9]
mov byte [ebp - 0x251], cl
cmp dword [ebp - 0x23c], 0
jle 0x43b7d6
mov edx, dword [ebp - 0x23c]
mov al, byte [ebp - 0x251]
mov byte [ebp + edx - 0x5d], al
mov byte [ebp - 0x49], 0
jmp 0x43b80d
mov dword [ebp - 0x2d0], 0
jmp 0x43b7f7
mov ecx, dword [ebp - 0x2d0]
add ecx, 1
mov dword [ebp - 0x2d0], ecx
cmp dword [ebp - 0x2d0], 0x14
jge 0x43b80d
mov edx, dword [ebp - 0x2d0]
mov byte [ebp + edx - 0x5c], 0
jmp 0x43b7e8
lea eax, [ebp - 0x5c]
push eax
mov ecx, dword [ebp + 0xc]
call fcn.0044de30
mov dword [ebp - 0x60], eax
lea ecx, [ebp - 0x64]
push ecx
lea edx, [ebp - 0x18]
push edx
lea eax, [ebp - 0x14]
push eax
push 0x24
lea ecx, [ebp - 0x8c]
push ecx
push 3
push 0xb
mov edx, dword [ebp - 0x20]
push edx
call dword [ebp - 0x60]
test eax, eax
je 0x43b84d
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xea
jne 0x43b88d
mov eax, dword [ebp - 0x14]
add eax, 0x24
mov dword [ebp - 0x2d4], eax
mov ecx, dword [ebp - 0x2d4]
push ecx
call fcn.0095acf1
add esp, 4
mov dword [ebp - 0x1c], eax
lea edx, [ebp - 0x64]
push edx
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x14]
push ecx
mov edx, dword [ebp - 0x2d4]
push edx
mov eax, dword [ebp - 0x1c]
push eax
push 3
push 0xb
mov ecx, dword [ebp - 0x20]
push ecx
call dword [ebp - 0x60]
mov dword [ebp - 0x2d8], 0
jmp 0x43b8a8
mov edx, dword [ebp - 0x2d8]
add edx, 1
mov dword [ebp - 0x2d8], edx
mov eax, dword [ebp - 0x2d8]
cmp eax, dword [ebp - 0x18]
jae 0x43b9ad
mov ecx, dword [ebp - 0x2d8]
imul ecx, ecx, 0x24
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + ecx]
push eax
call fcn.0095c673
add esp, 4
mov dword [ebp - 0x2dc], eax
mov ecx, dword [ebp - 0x2d8]
imul ecx, ecx, 0x24
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + ecx]
mov dword [ebp - 0x330], eax
mov ecx, dword [ebp - 0x330]
add ecx, 1
mov dword [ebp - 0x334], ecx
mov edx, dword [ebp - 0x330]
mov al, byte [edx]
mov byte [ebp - 0x335], al
add dword [ebp - 0x330], 1
cmp byte [ebp - 0x335], 0
jne 0x43b8f9
mov ecx, dword [ebp - 0x330]
sub ecx, dword [ebp - 0x334]
mov dword [ebp - 0x33c], ecx
mov edx, dword [ebp - 0x33c]
add edx, 1
push edx
mov eax, dword [ebp - 0x2dc]
push eax
call fcn.0095c65c
add esp, 8
mov dword [ebp - 0x2e0], 7
mov dword [ebp - 0x2e4], 0
jmp 0x43b967
mov ecx, dword [ebp - 0x2e4]
add ecx, 1
mov dword [ebp - 0x2e4], ecx
mov edx, dword [ebp - 0x2e4]
cmp edx, dword [ebp - 0x2e0]
jge 0x43b9a8
mov eax, dword [ebp - 0x2e4]
mov ecx, dword [ebp + eax*4 - 0x3c]
mov dword [ebp - 0x2e8], ecx
mov edx, dword [ebp - 0x2e8]
push edx
mov eax, dword [ebp - 0x2dc]
push eax
call fcn.00439300
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x43b9a6
mov al, 1
jmp 0x43b9c5
jmp 0x43b958
jmp 0x43b899
mov edx, dword [ebp - 0x1c]
push edx
call fcn.0095ad85
add esp, 4
mov eax, dword [ebp - 0x20]
push eax
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
xor al, al
mov esp, ebp
pop ebp
ret