Function at 0x954440
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x324
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
fldz
fstp qword [ebp - 0x10]
fldz
fstp qword [ebp - 8]
fldz
fstp qword [ebp - 8]
jmp 0x954474
fld qword [ebp - 8]
fadd qword [0x9d2178]
fstp qword [ebp - 8]
fld qword [0x9eb610]
fcomp qword [ebp - 8]
fnstsw ax
test ah, 0x41
jne 0x9544d3
fld qword [0x9eb608]
fmul qword [ebp - 8]
fmul qword [ebp - 8]
fld qword [ebp - 8]
fmul qword [ebp - 8]
fsubp st(1)
fld qword [0x9d2fc0]
fmul qword [ebp - 8]
fmul qword [ebp - 8]
fadd qword [0x9de860]
fdivp st(1)
fadd qword [ebp - 0x10]
fstp qword [ebp - 0x10]
fld qword [0x9eb600]
fcomp qword [ebp - 0x10]
fnstsw ax
test ah, 5
jp 0x9544d1
fld qword [0x9eb5f8]
fmul qword [ebp - 8]
fsubr qword [ebp - 0x10]
fstp qword [ebp - 0x10]
jmp 0x954468
fldz
fcomp qword [ebp - 0x10]
fnstsw ax
test ah, 0x41
jne 0x95452f
js 0x954515
jp 0x95451a
cmp dword [esi], 0xffffff81
cmp al, 0x7e
xor edi, dword [edx + 0x37]
jp 0x954526
jbe 0x954524
jle 0x95452a
jg 0x95452f
jl 0x954531
jbe 0x954527
xor dword [eax + eax*4], 0x3c
xor dword [ecx], 0xffffff81
xor bh, byte [esi + 0x38]
jge 0x95453a
jl 0x954540
jbe 0x95453e
js 0x954545
jg 0x954546
jge 0x95454b
jp 0x95454d
jl 0x95454c
jp 0x954546
aaa
dec edx
dec ebp
push ebp
jnp 0x954554
jns 0x954565
dec edx
push edi
cmp al, 0x55
jae 0x954551
push edi
xor eax, dword [eax + 0x75]
xor bh, byte ss:[esi]
jne 0x95455c
xor bh, byte [esi]
push esp
push esp
jmp 0x956c40
mov dword [ebp - 0x34], 0x9544df
mov dword [ebp - 0x30], 0x954513
mov eax, dword [ebp - 0x34]
int3
inc ebp
xchg ebp, eax
add byte [ebx + 0x4589cc45], cl
ror byte [ebx + 0x4d89d04d], 0xc4
inc ebp
int3
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x30]
ror byte [ecx - 0x7a393bb3], 1
mov dword [ebp - 0x3c], ecx
mov byte [ebp - 0x159], 0x1b
mov dword [ebp - 0x150], 0
jmp 0x95456b
cmpsd dword [esi], dword es:[edi]
invalid
invalid
test dword [eax + 0xfffffe], esi
add byte [eax], al
add bl, ch
jnp 0x93f5f6
invalid
mov edx, dword [ebp - 0x150]
add edx, 1
inc dword [ebx - 0x6a76fe3e]
mov al, 0xfe
invalid
mov dword [ebp - 0x150], edx
cmp dword [ebp - 0x150], 0x100
jae 0x95458c
mov eax, dword [ebp - 0x150]
mov cl, byte [ebp - 0x150]
mov byte [ebp + eax - 0x148], cl
jmp 0x95455c
mov dword [ebp - 0x44], 0
mov byte [ebp - 0x15a], 0
mov dword [ebp - 0x150], 0xff
jmp 0x9545b5
mov edx, dword [ebp - 0x150]
sub edx, 1
mov dword [ebp - 0x150], edx
cmp dword [ebp - 0x150], 0
jbe 0x9548ac
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x168], 1
mov eax, dword [ebp - 0x168]
cmp eax, dword [ebp - 0x150]
jae 0x9545f6
mov ecx, dword [ebp - 0x168]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x168], edx
jmp 0x9545d6
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x2d4], eax
cmp dword [ebp - 0x2d4], 3
ja case.default.0x954612
mov ecx, dword [ebp - 0x2d4]
jmp dword [ecx*4 + 0x956ca8]
movzx edx, byte [ebp - 0x15a]
movzx ecx, byte [ebp + edx - 0x148]
fld qword [ebp - 0x10]
fnstcw word [ebp - 0x2d6]
movzx eax, word [ebp - 0x2d6]
or eax, 0xc00
mov dword [ebp - 0x2dc], eax
fldcw word [ebp - 0x2dc]
fistp qword [ebp - 0x2e4]
fldcw word [ebp - 0x2d6]
mov edx, dword [ebp - 0x2e4]
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x15a], cl
jmp 0x954791
movzx eax, byte [ebp - 0x15a]
movzx ecx, byte [ebp + eax - 0x148]
fld qword [ebp - 0x10]
fnstcw word [ebp - 0x2e6]
movzx eax, word [ebp - 0x2e6]
or eax, 0xc00
mov dword [ebp - 0x2ec], eax
fldcw word [ebp - 0x2ec]
fistp qword [ebp - 0x2f4]
fldcw word [ebp - 0x2e6]
mov edx, dword [ebp - 0x2f4]
shr edx, 8
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x15a], cl
jmp 0x954791
movzx eax, byte [ebp - 0x15a]
movzx ecx, byte [ebp + eax - 0x148]
fld qword [ebp - 0x10]
fnstcw word [ebp - 0x2f6]
movzx eax, word [ebp - 0x2f6]
or eax, 0xc00
mov dword [ebp - 0x2fc], eax
fldcw word [ebp - 0x2fc]
fistp qword [ebp - 0x304]
fldcw word [ebp - 0x2f6]
mov edx, dword [ebp - 0x304]
shr edx, 0x10
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x15a], cl
jmp 0x954791
movzx eax, byte [ebp - 0x15a]
movzx ecx, byte [ebp + eax - 0x148]
fld qword [ebp - 0x10]
fnstcw word [ebp - 0x306]
movzx eax, word [ebp - 0x306]
or eax, 0xc00
mov dword [ebp - 0x30c], eax
fldcw word [ebp - 0x30c]
fistp qword [ebp - 0x314]
fldcw word [ebp - 0x306]
mov edx, dword [ebp - 0x314]
shr edx, 0x18
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x15a], cl
jmp 0x954791
movzx eax, byte [ebp - 0x15a]
movzx ecx, byte [ebp + eax - 0x148]
mov edx, dword [ebp - 0x3c]
add edx, dword [ebp - 0x44]
movzx eax, byte [edx - 4]
add ecx, eax
mov byte [ebp - 0x15a], cl
mov ecx, dword [ebp - 0x44]
add ecx, 1
mov dword [ebp - 0x44], ecx
movzx edx, byte [ebp - 0x159]
cmp dword [ebp - 0x44], edx
jb 0x9547c3
mov dword [ebp - 0x44], 0
movzx eax, byte [ebp - 0x159]
movzx ecx, byte [ebp - 0x15a]
add ecx, eax
mov byte [ebp - 0x15a], cl
movzx edx, byte [ebp - 0x15a]
and edx, dword [ebp - 0x168]
mov dword [ebp - 0x164], edx
mov eax, dword [ebp - 0x160]
add eax, 1
mov dword [ebp - 0x160], eax
cmp dword [ebp - 0x160], 0xb
jbe 0x954802
mov eax, dword [ebp - 0x164]
xor edx, edx
div dword [ebp - 0x150]
mov dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x164]
cmp ecx, dword [ebp - 0x150]
ja 0x9545f6
mov edx, dword [ebp - 0x150]
cmp edx, dword [ebp - 0x164]
je 0x9548a7
mov eax, dword [ebp - 0x164]
movzx ecx, byte [ebp + eax - 0x148]
mov edx, dword [ebp - 0x150]
movzx eax, byte [ebp + edx - 0x148]
xor eax, ecx
mov ecx, dword [ebp - 0x150]
mov byte [ebp + ecx - 0x148], al
mov edx, dword [ebp - 0x150]
movzx eax, byte [ebp + edx - 0x148]
mov ecx, dword [ebp - 0x164]
movzx edx, byte [ebp + ecx - 0x148]
xor edx, eax
mov eax, dword [ebp - 0x164]
mov byte [ebp + eax - 0x148], dl
mov ecx, dword [ebp - 0x164]
movzx edx, byte [ebp + ecx - 0x148]
mov eax, dword [ebp - 0x150]
movzx ecx, byte [ebp + eax - 0x148]
xor ecx, edx
mov edx, dword [ebp - 0x150]
mov byte [ebp + edx - 0x148], cl
jmp 0x9545a6
mov al, byte [ebp - 0x147]
mov byte [ebp - 0x15b], al
mov cl, byte [ebp - 0x145]
mov byte [ebp - 0x45], cl
mov dl, byte [ebp - 0x143]
mov byte [ebp - 0x149], dl
mov al, byte [ebp - 0x141]
mov byte [ebp - 0x151], al
movzx ecx, byte [ebp - 0x15a]
mov dl, byte [ebp + ecx - 0x148]
mov byte [ebp - 0x35], dl
mov dword [ebp - 0x158], 0x34
cmp dword [ebp - 0x158], 2
jle 0x956c0f
mov eax, dword [ebp - 0x158]
and eax, 1
jne 0x956c0f
mov dword [ebp - 0x254], 0
mov dword [ebp - 0x250], 0
mov ecx, dword [ebp - 0x250]
add ecx, 1
mov dword [ebp - 0x250], ecx
mov dword [ebp - 0x194], 0
mov edx, dword [ebp - 0x254]
shl edx, 1
mov dword [ebp - 0x194], edx
mov dword [ebp - 0x2a8], 0
fld qword [0x9eb5f0]
fstp qword [ebp - 0x1b0]
fld qword [0x9eb5e8]
fstp qword [ebp - 0x200]
fld qword [0x9eb5e0]
fstp qword [ebp - 0x260]
fld qword [0x9eb5d8]
fstp qword [ebp - 0x238]
fld qword [0x9eb5d0]
fstp qword [ebp - 0x288]
fld qword [ebp - 0x238]
fadd qword [ebp - 0x288]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x200]
fsub qword [ebp - 0x288]
fstp qword [ebp - 0x200]
fld qword [ebp - 0x238]
fmul qword [ebp - 0x288]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x260]
fadd qword [ebp - 0x288]
fstp qword [ebp - 0x260]
fld qword [ebp - 0x200]
fadd qword [ebp - 0x288]
fstp qword [ebp - 0x200]
fld qword [ebp - 0x238]
fcomp qword [ebp - 0x288]
fnstsw ax
test ah, 0x41
jne 0x954a75
fld qword [ebp - 0x238]
fmul qword [ebp - 0x1b0]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x200]
fmul qword [ebp - 0x238]
fstp qword [ebp - 0x200]
fld qword [ebp - 0x238]
fsub qword [ebp - 0x1b0]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x238]
fsub qword [ebp - 0x1b0]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x260]
fsub qword [ebp - 0x288]
fstp qword [ebp - 0x260]
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x194]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x2a8]
mov dword [ebp - 0x2a8], ecx
jmp 0x954bf2
fld qword [ebp - 0x238]
fmul qword [ebp - 0x288]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x238]
fsub qword [ebp - 0x288]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x200]
fadd qword [ebp - 0x260]
fstp qword [ebp - 0x200]
fld qword [ebp - 0x200]
fadd qword [ebp - 0x260]
fstp qword [ebp - 0x200]
fld qword [ebp - 0x200]
fdiv qword [ebp - 0x260]
fstp qword [ebp - 0x200]
fld qword [ebp - 0x1b0]
fsub qword [ebp - 0x260]
fstp qword [ebp - 0x1b0]
fld qword [ebp - 0x200]
fmul qword [ebp - 0x238]
fstp qword [ebp - 0x200]
fld qword [ebp - 0x288]
fadd qword [ebp - 0x200]
fstp qword [ebp - 0x288]
fld qword [ebp - 0x1b0]
fsub qword [ebp - 0x260]
fstp qword [ebp - 0x1b0]
fld qword [ebp - 0x260]
fsub qword [ebp - 0x288]
fstp qword [ebp - 0x260]
fld qword [ebp - 0x200]
fcomp qword [ebp - 0x288]
fnstsw ax
test ah, 5
jp 0x954b98
fld qword [ebp - 0x238]
fdiv qword [ebp - 0x288]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x288]
fdiv qword [ebp - 0x1b0]
fstp qword [ebp - 0x288]
fld qword [ebp - 0x288]
fmul qword [ebp - 0x1b0]
fstp qword [ebp - 0x288]
fld qword [ebp - 0x200]
fsub qword [ebp - 0x260]
fstp qword [ebp - 0x200]
fld qword [ebp - 0x288]
fadd qword [ebp - 0x1b0]
fstp qword [ebp - 0x288]
jmp 0x954bf2
fld qword [ebp - 0x288]
fadd qword [ebp - 0x1b0]
fstp qword [ebp - 0x288]
fld qword [ebp - 0x238]
fadd qword [ebp - 0x288]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x238]
fsub qword [ebp - 0x288]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x1b0]
fadd qword [ebp - 0x200]
fstp qword [ebp - 0x1b0]
fld qword [ebp - 0x1b0]
fadd qword [ebp - 0x200]
fstp qword [ebp - 0x1b0]
mov dword [ebp - 0x1f4], 0
mov edx, dword [ebp - 0x1f4]
add edx, 0x74
mov dword [ebp - 0x1f4], edx
mov dword [ebp - 0x22c], 0
mov eax, dword [ebp - 0x254]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x22c], ecx
mov dword [ebp - 0x2b8], 0
mov edx, dword [ebp - 0x40]
add edx, dword [ebp - 0x22c]
movzx eax, byte [edx]
add eax, dword [ebp - 0x2b8]
mov dword [ebp - 0x2b8], eax
mov dword [ebp - 0x2a4], 0
mov ecx, dword [ebp - 0x2a4]
add ecx, 0x30
mov dword [ebp - 0x2a4], ecx
mov dword [ebp - 0x2b4], 0
mov edx, dword [ebp - 0x2a8]
sub edx, dword [ebp - 0x1f4]
add edx, dword [ebp - 0x2b4]
mov dword [ebp - 0x2b4], edx
mov dword [ebp - 0x1a4], 0
mov eax, dword [ebp - 0x2b8]
sub eax, dword [ebp - 0x2a4]
add eax, dword [ebp - 0x1a4]
mov dword [ebp - 0x1a4], eax
mov dword [ebp - 0x2b0], 0
mov ecx, dword [ebp - 0x2b4]
shl ecx, 4
mov dword [ebp - 0x2b0], ecx
mov dword [ebp - 0x2a0], 0
mov edx, dword [ebp - 0x1a4]
mov dword [ebp - 0x2a0], edx
mov dword [ebp - 0x24c], 0
mov eax, dword [ebp - 0x2b0]
or eax, dword [ebp - 0x2a0]
mov dword [ebp - 0x24c], eax
mov byte [ebp - 0x1f5], 0
mov cl, byte [ebp - 0x24c]
mov byte [ebp - 0x1f5], cl
mov byte [ebp - 0x2a9], 0
movzx edx, byte [ebp - 0x35]
mov al, byte [ebp + edx - 0x148]
mov byte [ebp - 0x2a9], al
movzx ecx, byte [ebp - 0x15b]
movzx edx, byte [ebp + ecx - 0x148]
movzx eax, byte [ebp - 0x45]
add eax, edx
mov byte [ebp - 0x45], al
mov cl, byte [ebp - 0x15b]
add cl, 1
mov byte [ebp - 0x15b], cl
movzx edx, byte [ebp - 0x45]
movzx eax, byte [ebp - 0x35]
mov cl, byte [ebp + edx - 0x148]
mov byte [ebp + eax - 0x148], cl
movzx edx, byte [ebp - 0x151]
movzx eax, byte [ebp - 0x45]
mov cl, byte [ebp + edx - 0x148]
mov byte [ebp + eax - 0x148], cl
movzx edx, byte [ebp - 0x15b]
movzx eax, byte [ebp - 0x151]
mov cl, byte [ebp + edx - 0x148]
mov byte [ebp + eax - 0x148], cl
fld qword [0x9eb5c8]
fstp qword [ebp - 0x190]
fld qword [0x9e3bd0]
fstp qword [ebp - 0x1d8]
fld qword [0x9d57c8]
fstp qword [ebp - 0x228]
fld qword [0x9eb5c0]
fstp qword [ebp - 0x280]
fld qword [0x9eb5b8]
fstp qword [ebp - 0x188]
fld qword [0x9eb5b0]
fstp qword [ebp - 0x1d0]
fld qword [ebp - 0x188]
fsub qword [ebp - 0x1d0]
fstp qword [ebp - 0x188]
fld qword [ebp - 0x280]
fadd qword [ebp - 0x1d0]
fstp qword [ebp - 0x280]
fld qword [ebp - 0x228]
fmul qword [ebp - 0x1d0]
fstp qword [ebp - 0x228]
fld qword [ebp - 0x188]
fadd qword [ebp - 0x1d0]
fstp qword [ebp - 0x188]
fld qword [ebp - 0x228]
fadd qword [ebp - 0x1d0]
fstp qword [ebp - 0x228]
fld qword [ebp - 0x228]
fsub qword [ebp - 0x1d0]
fstp qword [ebp - 0x228]
fld qword [ebp - 0x1d0]
fcomp qword [ebp - 0x228]
fnstsw ax
test ah, 0x41
jne 0x955021
fld qword [ebp - 0x1d8]
fsub qword [ebp - 0x280]
fstp qword [ebp - 0x1d8]
fld qword [ebp - 0x228]
fmul qword [ebp - 0x188]
fstp qword [ebp - 0x228]
fld qword [ebp - 0x228]
fadd qword [ebp - 0x188]
fstp qword [ebp - 0x228]
fld qword [ebp - 0x1d0]
fsub qword [ebp - 0x1d8]
fstp qword [ebp - 0x1d0]
fld qword [ebp - 0x1d8]
fadd qword [ebp - 0x280]
fstp qword [ebp - 0x1d8]
fld qword [ebp - 0x280]
fmul qword [ebp - 0x1d0]
fstp qword [ebp - 0x280]
fld qword [ebp - 0x188]
fadd qword [ebp - 0x190]
fstp qword [ebp - 0x188]
fld qword [ebp - 0x188]
fadd qword [ebp - 0x190]
fstp qword [ebp - 0x188]
fld qword [ebp - 0x280]
fsub qword [ebp - 0x1d0]
fstp qword [ebp - 0x280]
fld qword [ebp - 0x188]
fadd qword [ebp - 0x190]
fstp qword [ebp - 0x188]
fld qword [ebp - 0x190]
fadd qword [ebp - 0x228]
fstp qword [ebp - 0x190]
fld qword [ebp - 0x1d8]
fmul qword [ebp - 0x280]
fstp qword [ebp - 0x1d8]
fld qword [ebp - 0x228]
fcomp qword [ebp - 0x190]
fnstsw ax
test ah, 0x41
jne 0x954fb0
fld qword [ebp - 0x1d0]
fsub qword [ebp - 0x1d8]
fstp qword [ebp - 0x1d0]
fld qword [ebp - 0x188]
fadd qword [ebp - 0x190]
fstp qword [ebp - 0x188]
fld qword [ebp - 0x1d8]
fsub qword [ebp - 0x280]
fstp qword [ebp - 0x1d8]
fld qword [ebp - 0x280]
fmul qword [ebp - 0x1d0]
fstp qword [ebp - 0x280]
fld qword [ebp - 0x1d0]
fdiv qword [ebp - 0x1d8]
fstp qword [ebp - 0x1d0]
fld qword [ebp - 0x1d0]
fmul qword [ebp - 0x1d8]
fstp qword [ebp - 0x1d0]
jmp 0x95501c
fld qword [ebp - 0x1d8]
fdiv qword [ebp - 0x280]
fstp qword [ebp - 0x1d8]
fld qword [ebp - 0x190]
fsub qword [ebp - 0x228]
fstp qword [ebp - 0x190]
fld qword [ebp - 0x280]
fmul qword [ebp - 0x1d0]
fstp qword [ebp - 0x280]
fld qword [ebp - 0x1d0]
fadd qword [ebp - 0x1d8]
fstp qword [ebp - 0x1d0]
fld qword [ebp - 0x190]
fsub qword [ebp - 0x228]
fstp qword [ebp - 0x190]
fld qword [ebp - 0x1d0]
fdiv qword [ebp - 0x1d8]
fstp qword [ebp - 0x1d0]
jmp 0x9550a1
fld qword [ebp - 0x190]
fadd qword [ebp - 0x1d8]
fstp qword [ebp - 0x190]
fld qword [ebp - 0x1d0]
fadd qword [ebp - 0x190]
fstp qword [ebp - 0x1d0]
fld qword [ebp - 0x280]
fadd qword [ebp - 0x188]
fstp qword [ebp - 0x280]
fld qword [ebp - 0x1d0]
fadd qword [ebp - 0x190]
fstp qword [ebp - 0x1d0]
fld qword [ebp - 0x190]
fmul qword [ebp - 0x1d8]
fstp qword [ebp - 0x190]
fld qword [ebp - 0x1d8]
fadd qword [ebp - 0x228]
fstp qword [ebp - 0x1d8]
movzx edx, byte [ebp - 0x15b]
mov al, byte [ebp - 0x2a9]
mov byte [ebp + edx - 0x148], al
movzx ecx, byte [ebp - 0x2a9]
movzx edx, byte [ebp + ecx - 0x148]
movzx eax, byte [ebp - 0x149]
add eax, edx
mov byte [ebp - 0x149], al
movzx ecx, byte [ebp - 0x1f5]
movzx edx, byte [ebp - 0x45]
movzx eax, byte [ebp + edx - 0x148]
movzx edx, byte [ebp - 0x15b]
movzx edx, byte [ebp + edx - 0x148]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x148]
xor ecx, eax
movzx edx, byte [ebp - 0x151]
movzx eax, byte [ebp + edx - 0x148]
movzx edx, byte [ebp - 0x35]
movzx edx, byte [ebp + edx - 0x148]
add eax, edx
movzx edx, byte [ebp - 0x149]
movzx edx, byte [ebp + edx - 0x148]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x148]
movzx edx, byte [ebp + eax - 0x148]
xor ecx, edx
mov byte [ebp - 0x151], cl
mov al, byte [ebp - 0x1f5]
mov byte [ebp - 0x35], al
mov cl, byte [ebp - 0x151]
mov byte [ebp - 0x299], cl
cmp dword [ebp - 0x254], 0
jle 0x95516b
mov edx, dword [ebp - 0x254]
mov al, byte [ebp - 0x299]
mov byte [ebp + edx - 0x2d], al
mov ecx, dword [ebp - 0x254]
add ecx, 1
mov dword [ebp - 0x254], ecx
mov edx, dword [ebp - 0x250]
add edx, 1
mov dword [ebp - 0x250], edx
mov eax, dword [ebp - 0x254]
shl eax, 1
mov dword [ebp - 0x194], eax
mov ecx, dword [ebp - 0x40]
add ecx, dword [ebp - 0x194]
movzx edx, byte [ecx]
mov dword [ebp - 0x2a8], edx
mov dword [ebp - 0x1f4], 0x74
mov eax, dword [ebp - 0x254]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x22c], ecx
mov edx, dword [ebp - 0x40]
add edx, dword [ebp - 0x22c]
movzx eax, byte [edx]
mov dword [ebp - 0x2b8], eax
mov dword [ebp - 0x2a4], 0x30
mov ecx, dword [ebp - 0x2a8]
sub ecx, dword [ebp - 0x1f4]
mov dword [ebp - 0x2b4], ecx
mov edx, dword [ebp - 0x2b8]
sub edx, dword [ebp - 0x2a4]
mov dword [ebp - 0x1a4], edx
fld qword [0x9dca88]
fstp qword [ebp - 0x220]
fld qword [0x9eb5a8]
fstp qword [ebp - 0x278]
fld qword [0x9eb5a0]
fstp qword [ebp - 0x180]
fld qword [0x9eb598]
fstp qword [ebp - 0x270]
fld qword [0x9eb590]
fstp qword [ebp - 0x218]
fld qword [0x9eb588]
fstp qword [ebp - 0x1c8]
fld qword [0x9da300]
fstp qword [ebp - 0x178]
fld qword [ebp - 0x218]
fsub qword [ebp - 0x178]
fstp qword [ebp - 0x218]
fld qword [ebp - 0x220]
fmul qword [ebp - 0x178]
fstp qword [ebp - 0x220]
fld qword [ebp - 0x220]
fadd qword [ebp - 0x178]
fstp qword [ebp - 0x220]
fld qword [ebp - 0x220]
fsub qword [ebp - 0x178]
fstp qword [ebp - 0x220]
fld qword [ebp - 0x218]
fmul qword [ebp - 0x178]
fstp qword [ebp - 0x218]
fld qword [ebp - 0x220]
fsub qword [ebp - 0x178]
fstp qword [ebp - 0x220]
fld qword [ebp - 0x270]
fadd qword [ebp - 0x178]
fstp qword [ebp - 0x270]
fld qword [ebp - 0x220]
fcomp qword [ebp - 0x178]
fnstsw ax
test ah, 0x41
jne 0x95537e
fld qword [ebp - 0x270]
fsub qword [ebp - 0x218]
fstp qword [ebp - 0x270]
fld qword [ebp - 0x278]
fadd qword [ebp - 0x180]
fstp qword [ebp - 0x278]
fld qword [ebp - 0x218]
fsub qword [ebp - 0x1c8]
fstp qword [ebp - 0x218]
fld qword [ebp - 0x270]
fadd qword [ebp - 0x218]
fstp qword [ebp - 0x270]
fld qword [ebp - 0x220]
fadd qword [ebp - 0x278]
fstp qword [ebp - 0x220]
fld qword [ebp - 0x1c8]
fmul qword [ebp - 0x178]
fstp qword [ebp - 0x1c8]
fld qword [ebp - 0x220]
fsub qword [ebp - 0x278]
fstp qword [ebp - 0x220]
mov eax, dword [ebp - 0x2b4]
shl eax, 4
mov dword [ebp - 0x2b0], eax
jmp 0x95558f
fld qword [ebp - 0x218]
fsub qword [ebp - 0x1c8]
fstp qword [ebp - 0x218]
fld qword [ebp - 0x1c8]
fadd qword [ebp - 0x178]
fstp qword [ebp - 0x1c8]
fld qword [ebp - 0x270]
fsub qword [ebp - 0x218]
fstp qword [ebp - 0x270]
fld qword [ebp - 0x270]
fmul qword [ebp - 0x218]
fstp qword [ebp - 0x270]
fld qword [ebp - 0x218]
fsub qword [ebp - 0x1c8]
fstp qword [ebp - 0x218]
fld qword [ebp - 0x270]
fmul qword [ebp - 0x218]
fstp qword [ebp - 0x270]
fld qword [ebp - 0x278]
fdiv qword [ebp - 0x180]
fstp qword [ebp - 0x278]
fld qword [ebp - 0x220]
fadd qword [ebp - 0x278]
fstp qword [ebp - 0x220]
fld qword [ebp - 0x278]
fmul qword [ebp - 0x180]
fstp qword [ebp - 0x278]
fld qword [ebp - 0x278]
fmul qword [ebp - 0x180]
fstp qword [ebp - 0x278]
fld qword [ebp - 0x220]
fsub qword [ebp - 0x278]
fstp qword [ebp - 0x220]
fld qword [ebp - 0x270]
fmul qword [ebp - 0x218]
fstp qword [ebp - 0x270]
fld qword [ebp - 0x178]
fdiv qword [ebp - 0x220]
fstp qword [ebp - 0x178]
fld qword [ebp - 0x270]
fadd qword [ebp - 0x218]
fstp qword [ebp - 0x270]
fld qword [ebp - 0x180]
fcomp qword [ebp - 0x220]
fnstsw ax
test ah, 5
jp 0x955511
fld qword [ebp - 0x270]
fadd qword [ebp - 0x218]
fstp qword [ebp - 0x270]
fld qword [ebp - 0x178]
fmul qword [ebp - 0x220]
fstp qword [ebp - 0x178]
fld qword [ebp - 0x178]
fadd qword [ebp - 0x220]
fstp qword [ebp - 0x178]
fld qword [ebp - 0x220]
fsub qword [ebp - 0x278]
fstp qword [ebp - 0x220]
fld qword [ebp - 0x270]
fsub qword [ebp - 0x218]
fstp qword [ebp - 0x270]
fld qword [ebp - 0x180]
fmul qword [ebp - 0x270]
fstp qword [ebp - 0x180]
fld qword [ebp - 0x178]
fdiv qword [ebp - 0x220]
fstp qword [ebp - 0x178]
jmp 0x95558f
fld qword [ebp - 0x218]
fadd qword [ebp - 0x178]
fstp qword [ebp - 0x218]
fld qword [ebp - 0x270]
fadd qword [ebp - 0x1c8]
fstp qword [ebp - 0x270]
fld qword [ebp - 0x1c8]
fmul qword [ebp - 0x220]
fstp qword [ebp - 0x1c8]
fld qword [ebp - 0x278]
fmul qword [ebp - 0x270]
fstp qword [ebp - 0x278]
fld qword [ebp - 0x1c8]
fadd qword [ebp - 0x220]
fstp qword [ebp - 0x1c8]
fld qword [ebp - 0x178]
fsub qword [ebp - 0x278]
fstp qword [ebp - 0x178]
fld qword [ebp - 0x278]
fadd qword [ebp - 0x270]
fstp qword [ebp - 0x278]
mov ecx, dword [ebp - 0x1a4]
mov dword [ebp - 0x2a0], ecx
mov edx, dword [ebp - 0x2b0]
or edx, dword [ebp - 0x2a0]
mov dword [ebp - 0x24c], edx
mov al, byte [ebp - 0x24c]
mov byte [ebp - 0x1f5], al
movzx ecx, byte [ebp - 0x35]
mov dl, byte [ebp + ecx - 0x148]
mov byte [ebp - 0x2a9], dl
movzx eax, byte [ebp - 0x15b]
movzx ecx, byte [ebp + eax - 0x148]
movzx edx, byte [ebp - 0x45]
add edx, ecx
mov byte [ebp - 0x45], dl
mov al, byte [ebp - 0x15b]
add al, 1
mov byte [ebp - 0x15b], al
movzx ecx, byte [ebp - 0x45]
movzx edx, byte [ebp - 0x35]
mov al, byte [ebp + ecx - 0x148]
mov byte [ebp + edx - 0x148], al
movzx ecx, byte [ebp - 0x151]
movzx edx, byte [ebp - 0x45]
mov al, byte [ebp + ecx - 0x148]
mov byte [ebp + edx - 0x148], al
movzx ecx, byte [ebp - 0x15b]
movzx edx, byte [ebp - 0x151]
mov al, byte [ebp + ecx - 0x148]
mov byte [ebp + edx - 0x148], al
movzx ecx, byte [ebp - 0x15b]
mov dl, byte [ebp - 0x2a9]
mov byte [ebp + ecx - 0x148], dl
movzx eax, byte [ebp - 0x2a9]
movzx ecx, byte [ebp + eax - 0x148]
movzx edx, byte [ebp - 0x149]
add edx, ecx
mov byte [ebp - 0x149], dl
movzx eax, byte [ebp - 0x1f5]
movzx ecx, byte [ebp - 0x45]
movzx edx, byte [ebp + ecx - 0x148]
movzx ecx, byte [ebp - 0x15b]
movzx ecx, byte [ebp + ecx - 0x148]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x148]
xor eax, edx
movzx ecx, byte [ebp - 0x151]
movzx edx, byte [ebp + ecx - 0x148]
movzx ecx, byte [ebp - 0x35]
movzx ecx, byte [ebp + ecx - 0x148]
add edx, ecx
movzx ecx, byte [ebp - 0x149]
movzx ecx, byte [ebp + ecx - 0x148]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x148]
movzx ecx, byte [ebp + edx - 0x148]
xor eax, ecx
mov byte [ebp - 0x151], al
mov dl, byte [ebp - 0x1f5]
mov byte [ebp - 0x35], dl
mov al, byte [ebp - 0x151]
mov byte [ebp - 0x299], al
cmp dword [ebp - 0x254], 0
jle 0x95571b
mov ecx, dword [ebp - 0x254]
mov dl, byte [ebp - 0x299]
mov byte [ebp + ecx - 0x2d], dl
mov eax, dword [ebp - 0x250]
add eax, 0xa
mov dword [ebp - 0x250], eax
mov ecx, dword [ebp - 0x254]
add ecx, 1
mov dword [ebp - 0x2bc], ecx
jmp 0x95574a
mov edx, dword [ebp - 0x2bc]
add edx, 1
mov dword [ebp - 0x2bc], edx
mov eax, dword [ebp - 0x2bc]
cmp eax, dword [ebp - 0x250]
jge 0x955986
mov ecx, dword [ebp - 0x254]
add ecx, 1
mov dword [ebp - 0x254], ecx
mov edx, dword [ebp - 0x254]
shl edx, 1
mov dword [ebp - 0x194], edx
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x194]
movzx ecx, byte [eax]
mov dword [ebp - 0x2a8], ecx
mov dword [ebp - 0x1f4], 0x74
mov edx, dword [ebp - 0x254]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x22c], eax
mov ecx, dword [ebp - 0x40]
add ecx, dword [ebp - 0x22c]
movzx edx, byte [ecx]
mov dword [ebp - 0x2b8], edx
mov dword [ebp - 0x2a4], 0x30
mov eax, dword [ebp - 0x2a8]
sub eax, dword [ebp - 0x1f4]
mov dword [ebp - 0x2b4], eax
mov ecx, dword [ebp - 0x2b8]
sub ecx, dword [ebp - 0x2a4]
mov dword [ebp - 0x1a4], ecx
mov edx, dword [ebp - 0x2b4]
shl edx, 4
mov dword [ebp - 0x2b0], edx
mov eax, dword [ebp - 0x1a4]
mov dword [ebp - 0x2a0], eax
mov ecx, dword [ebp - 0x2b0]
or ecx, dword [ebp - 0x2a0]
mov dword [ebp - 0x24c], ecx
mov dl, byte [ebp - 0x24c]
mov byte [ebp - 0x1f5], dl
movzx eax, byte [ebp - 0x35]
mov cl, byte [ebp + eax - 0x148]
mov byte [ebp - 0x2a9], cl
movzx edx, byte [ebp - 0x15b]
movzx eax, byte [ebp + edx - 0x148]
movzx ecx, byte [ebp - 0x45]
add ecx, eax
mov byte [ebp - 0x45], cl
mov dl, byte [ebp - 0x15b]
add dl, 1
mov byte [ebp - 0x15b], dl
movzx eax, byte [ebp - 0x45]
movzx ecx, byte [ebp - 0x35]
mov dl, byte [ebp + eax - 0x148]
mov byte [ebp + ecx - 0x148], dl
movzx eax, byte [ebp - 0x151]
movzx ecx, byte [ebp - 0x45]
mov dl, byte [ebp + eax - 0x148]
mov byte [ebp + ecx - 0x148], dl
movzx eax, byte [ebp - 0x15b]
movzx ecx, byte [ebp - 0x151]
mov dl, byte [ebp + eax - 0x148]
mov byte [ebp + ecx - 0x148], dl
movzx eax, byte [ebp - 0x15b]
mov cl, byte [ebp - 0x2a9]
mov byte [ebp + eax - 0x148], cl
movzx edx, byte [ebp - 0x2a9]
movzx eax, byte [ebp + edx - 0x148]
movzx ecx, byte [ebp - 0x149]
add ecx, eax
mov byte [ebp - 0x149], cl
movzx edx, byte [ebp - 0x1f5]
movzx eax, byte [ebp - 0x45]
movzx ecx, byte [ebp + eax - 0x148]
movzx eax, byte [ebp - 0x15b]
movzx eax, byte [ebp + eax - 0x148]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x148]
xor edx, ecx
movzx eax, byte [ebp - 0x151]
movzx ecx, byte [ebp + eax - 0x148]
movzx eax, byte [ebp - 0x35]
movzx eax, byte [ebp + eax - 0x148]
add ecx, eax
movzx eax, byte [ebp - 0x149]
movzx eax, byte [ebp + eax - 0x148]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x148]
movzx eax, byte [ebp + ecx - 0x148]
xor edx, eax
mov byte [ebp - 0x151], dl
mov cl, byte [ebp - 0x1f5]
mov byte [ebp - 0x35], cl
mov dl, byte [ebp - 0x151]
mov byte [ebp - 0x299], dl
cmp dword [ebp - 0x254], 0
jle 0x955981
mov eax, dword [ebp - 0x254]
mov cl, byte [ebp - 0x299]
mov byte [ebp + eax - 0x2d], cl
jmp 0x95573b
mov edx, dword [ebp - 0x250]
add edx, 1
mov dword [ebp - 0x250], edx
mov eax, dword [ebp - 0x254]
add eax, 1
mov dword [ebp - 0x254], eax
mov ecx, dword [ebp - 0x250]
add ecx, 1
mov dword [ebp - 0x250], ecx
mov edx, dword [ebp - 0x254]
shl edx, 1
mov dword [ebp - 0x194], edx
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x194]
movzx ecx, byte [eax]
mov dword [ebp - 0x2a8], ecx
mov dword [ebp - 0x1f4], 0x74
mov edx, dword [ebp - 0x254]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x22c], eax
mov ecx, dword [ebp - 0x40]
add ecx, dword [ebp - 0x22c]
movzx edx, byte [ecx]
mov dword [ebp - 0x2b8], edx
mov dword [ebp - 0x2a4], 0x30
mov eax, dword [ebp - 0x2a8]
sub eax, dword [ebp - 0x1f4]
mov dword [ebp - 0x2b4], eax
mov ecx, dword [ebp - 0x2b8]
sub ecx, dword [ebp - 0x2a4]
mov dword [ebp - 0x1a4], ecx
mov edx, dword [ebp - 0x2b4]
shl edx, 4
mov dword [ebp - 0x2b0], edx
mov eax, dword [ebp - 0x1a4]
mov dword [ebp - 0x2a0], eax
mov ecx, dword [ebp - 0x2b0]
or ecx, dword [ebp - 0x2a0]
mov dword [ebp - 0x24c], ecx
mov dl, byte [ebp - 0x24c]
mov byte [ebp - 0x1f5], dl
movzx eax, byte [ebp - 0x35]
mov cl, byte [ebp + eax - 0x148]
mov byte [ebp - 0x2a9], cl
movzx edx, byte [ebp - 0x15b]
movzx eax, byte [ebp + edx - 0x148]
movzx ecx, byte [ebp - 0x45]
add ecx, eax
mov byte [ebp - 0x45], cl
mov dl, byte [ebp - 0x15b]
add dl, 1
mov byte [ebp - 0x15b], dl
movzx eax, byte [ebp - 0x45]
movzx ecx, byte [ebp - 0x35]
mov dl, byte [ebp + eax - 0x148]
mov byte [ebp + ecx - 0x148], dl
movzx eax, byte [ebp - 0x151]
movzx ecx, byte [ebp - 0x45]
mov dl, byte [ebp + eax - 0x148]
mov byte [ebp + ecx - 0x148], dl
movzx eax, byte [ebp - 0x15b]
movzx ecx, byte [ebp - 0x151]
mov dl, byte [ebp + eax - 0x148]
mov byte [ebp + ecx - 0x148], dl
movzx eax, byte [ebp - 0x15b]
mov cl, byte [ebp - 0x2a9]
mov byte [ebp + eax - 0x148], cl
movzx edx, byte [ebp - 0x2a9]
movzx eax, byte [ebp + edx - 0x148]
movzx ecx, byte [ebp - 0x149]
add ecx, eax
mov byte [ebp - 0x149], cl
movzx edx, byte [ebp - 0x1f5]
movzx eax, byte [ebp - 0x45]
movzx ecx, byte [ebp + eax - 0x148]
movzx eax, byte [ebp - 0x15b]
movzx eax, byte [ebp + eax - 0x148]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x148]
xor edx, ecx
movzx eax, byte [ebp - 0x151]
movzx ecx, byte [ebp + eax - 0x148]
movzx eax, byte [ebp - 0x35]
movzx eax, byte [ebp + eax - 0x148]
add ecx, eax
movzx eax, byte [ebp - 0x149]
movzx eax, byte [ebp + eax - 0x148]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x148]
movzx eax, byte [ebp + ecx - 0x148]
xor edx, eax
mov byte [ebp - 0x151], dl
fld dword [0x9eb580]
fstp dword [ebp - 0x268]
fld dword [0x9eb57c]
fstp dword [ebp - 0x20c]
fld dword [0x9eb578]
fstp dword [ebp - 0x1bc]
fld dword [ebp - 0x20c]
fsub dword [ebp - 0x1bc]
fstp dword [ebp - 0x20c]
fld dword [ebp - 0x268]
fadd dword [ebp - 0x1bc]
fstp dword [ebp - 0x268]
fld dword [ebp - 0x268]
fsub dword [ebp - 0x1bc]
fstp dword [ebp - 0x268]
fld dword [ebp - 0x20c]
fld dword [ebp - 0x268]
fcompp
fnstsw ax
test ah, 0x41
jne 0x955c4b
fld dword [ebp - 0x268]
fadd dword [ebp - 0x20c]
fstp dword [ebp - 0x268]
fld dword [ebp - 0x20c]
fsub dword [ebp - 0x1bc]
fstp dword [ebp - 0x20c]
fld dword [ebp - 0x268]
fmul dword [ebp - 0x20c]
fstp dword [ebp - 0x268]
mov cl, byte [ebp - 0x1f5]
mov byte [ebp - 0x35], cl
jmp 0x955c81
fld dword [ebp - 0x20c]
fadd dword [ebp - 0x268]
fstp dword [ebp - 0x20c]
fld dword [ebp - 0x20c]
fadd dword [ebp - 0x268]
fstp dword [ebp - 0x20c]
fld dword [ebp - 0x268]
fsub dword [ebp - 0x1bc]
fstp dword [ebp - 0x268]
mov dl, byte [ebp - 0x151]
mov byte [ebp - 0x299], dl
cmp dword [ebp - 0x254], 0
jle 0x955ca6
mov eax, dword [ebp - 0x254]
mov cl, byte [ebp - 0x299]
mov byte [ebp + eax - 0x2d], cl
mov edx, dword [ebp - 0x250]
add edx, 0xb
mov dword [ebp - 0x250], edx
mov eax, dword [ebp - 0x254]
add eax, 1
mov dword [ebp - 0x2c0], eax
jmp 0x955cd5
mov ecx, dword [ebp - 0x2c0]
add ecx, 1
mov dword [ebp - 0x2c0], ecx
mov edx, dword [ebp - 0x2c0]
cmp edx, dword [ebp - 0x250]
jge 0x9560a8
mov eax, dword [ebp - 0x254]
add eax, 1
mov dword [ebp - 0x254], eax
mov ecx, dword [ebp - 0x254]
shl ecx, 1
mov dword [ebp - 0x194], ecx
mov edx, dword [ebp - 0x40]
add edx, dword [ebp - 0x194]
movzx eax, byte [edx]
mov dword [ebp - 0x2a8], eax
fld dword [0x9e452c]
fstp dword [ebp - 0x2c4]
fld dword [0x9eb574]
fstp dword [ebp - 0x2cc]
fld dword [0x9eb570]
fstp dword [ebp - 0x2c8]
fld dword [ebp - 0x2cc]
fsub dword [ebp - 0x2c8]
fstp dword [ebp - 0x2cc]
fld dword [ebp - 0x2cc]
fadd dword [ebp - 0x2c8]
fstp dword [ebp - 0x2cc]
fld dword [ebp - 0x2cc]
fmul dword [ebp - 0x2c8]
fstp dword [ebp - 0x2cc]
fld dword [ebp - 0x2c8]
fld dword [ebp - 0x2cc]
fcompp
fnstsw ax
test ah, 0x41
jne 0x955dca
fld dword [ebp - 0x2c4]
fadd dword [ebp - 0x2c8]
fstp dword [ebp - 0x2c4]
fld dword [ebp - 0x2cc]
fadd dword [ebp - 0x2c4]
fstp dword [ebp - 0x2cc]
fld dword [ebp - 0x2c4]
fadd dword [ebp - 0x2c8]
fstp dword [ebp - 0x2c4]
mov dword [ebp - 0x1f4], 0x74
jmp 0x955eb9
fld dword [ebp - 0x2c4]
fmul dword [ebp - 0x2c8]
fstp dword [ebp - 0x2c4]
fld dword [ebp - 0x2cc]
fsub dword [ebp - 0x2c4]
fstp dword [ebp - 0x2cc]
fld dword [ebp - 0x2c4]
fmul dword [ebp - 0x2c8]
fstp dword [ebp - 0x2c4]
fld dword [ebp - 0x2c8]
fadd dword [ebp - 0x2cc]
fstp dword [ebp - 0x2c8]
fld dword [ebp - 0x2c4]
fadd dword [ebp - 0x2c8]
fstp dword [ebp - 0x2c4]
fld dword [ebp - 0x2c4]
fmul dword [ebp - 0x2c8]
fstp dword [ebp - 0x2c4]
fld dword [ebp - 0x2c8]
fld dword [ebp - 0x2cc]
fcompp
fnstsw ax
test ah, 5
jp 0x955e83
fld dword [ebp - 0x2c8]
fdiv dword [ebp - 0x2cc]
fstp dword [ebp - 0x2c8]
fld dword [ebp - 0x2c4]
fdiv dword [ebp - 0x2c8]
fstp dword [ebp - 0x2c4]
fld dword [ebp - 0x2cc]
fdiv dword [ebp - 0x2c4]
fstp dword [ebp - 0x2cc]
jmp 0x955eb9
fld dword [ebp - 0x2c4]
fsub dword [ebp - 0x2c8]
fstp dword [ebp - 0x2c4]
fld dword [ebp - 0x2cc]
fmul dword [ebp - 0x2c4]
fstp dword [ebp - 0x2cc]
fld dword [ebp - 0x2c4]
fdiv dword [ebp - 0x2c8]
fstp dword [ebp - 0x2c4]
mov ecx, dword [ebp - 0x254]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x22c], edx
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x22c]
movzx ecx, byte [eax]
mov dword [ebp - 0x2b8], ecx
mov dword [ebp - 0x2a4], 0x30
mov edx, dword [ebp - 0x2a8]
sub edx, dword [ebp - 0x1f4]
mov dword [ebp - 0x2b4], edx
mov eax, dword [ebp - 0x2b8]
sub eax, dword [ebp - 0x2a4]
mov dword [ebp - 0x1a4], eax
mov ecx, dword [ebp - 0x2b4]
shl ecx, 4
mov dword [ebp - 0x2b0], ecx
mov edx, dword [ebp - 0x1a4]
mov dword [ebp - 0x2a0], edx
mov eax, dword [ebp - 0x2b0]
or eax, dword [ebp - 0x2a0]
mov dword [ebp - 0x24c], eax
mov cl, byte [ebp - 0x24c]
mov byte [ebp - 0x1f5], cl
movzx edx, byte [ebp - 0x35]
mov al, byte [ebp + edx - 0x148]
mov byte [ebp - 0x2a9], al
movzx ecx, byte [ebp - 0x15b]
movzx edx, byte [ebp + ecx - 0x148]
movzx eax, byte [ebp - 0x45]
add eax, edx
mov byte [ebp - 0x45], al
mov cl, byte [ebp - 0x15b]
add cl, 1
mov byte [ebp - 0x15b], cl
movzx edx, byte [ebp - 0x45]
movzx eax, byte [ebp - 0x35]
mov cl, byte [ebp + edx - 0x148]
mov byte [ebp + eax - 0x148], cl
movzx edx, byte [ebp - 0x151]
movzx eax, byte [ebp - 0x45]
mov cl, byte [ebp + edx - 0x148]
mov byte [ebp + eax - 0x148], cl
movzx edx, byte [ebp - 0x15b]
movzx eax, byte [ebp - 0x151]
mov cl, byte [ebp + edx - 0x148]
mov byte [ebp + eax - 0x148], cl
movzx edx, byte [ebp - 0x15b]
mov al, byte [ebp - 0x2a9]
mov byte [ebp + edx - 0x148], al
movzx ecx, byte [ebp - 0x2a9]
movzx edx, byte [ebp + ecx - 0x148]
movzx eax, byte [ebp - 0x149]
add eax, edx
mov byte [ebp - 0x149], al
movzx ecx, byte [ebp - 0x1f5]
movzx edx, byte [ebp - 0x45]
movzx eax, byte [ebp + edx - 0x148]
movzx edx, byte [ebp - 0x15b]
movzx edx, byte [ebp + edx - 0x148]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x148]
xor ecx, eax
movzx edx, byte [ebp - 0x151]
movzx eax, byte [ebp + edx - 0x148]
movzx edx, byte [ebp - 0x35]
movzx edx, byte [ebp + edx - 0x148]
add eax, edx
movzx edx, byte [ebp - 0x149]
movzx edx, byte [ebp + edx - 0x148]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x148]
movzx edx, byte [ebp + eax - 0x148]
xor ecx, edx
mov byte [ebp - 0x151], cl
mov al, byte [ebp - 0x1f5]
mov byte [ebp - 0x35], al
mov cl, byte [ebp - 0x151]
mov byte [ebp - 0x299], cl
cmp dword [ebp - 0x254], 0
jle 0x9560a3
mov edx, dword [ebp - 0x254]
mov al, byte [ebp - 0x299]
mov byte [ebp + edx - 0x2d], al
jmp 0x955cc6
mov ecx, dword [ebp - 0x250]
add ecx, 1
mov dword [ebp - 0x250], ecx
mov edx, dword [ebp - 0x254]
add edx, 1
mov dword [ebp - 0x254], edx
mov eax, dword [ebp - 0x250]
add eax, 1
mov dword [ebp - 0x250], eax
mov ecx, dword [ebp - 0x254]
shl ecx, 1
mov dword [ebp - 0x194], ecx
mov edx, dword [ebp - 0x40]
add edx, dword [ebp - 0x194]
movzx eax, byte [edx]
mov dword [ebp - 0x2a8], eax
mov dword [ebp - 0x1f4], 0x74
mov ecx, dword [ebp - 0x254]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x22c], edx
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x22c]
movzx ecx, byte [eax]
mov dword [ebp - 0x2b8], ecx
mov dword [ebp - 0x2a4], 0x30
mov edx, dword [ebp - 0x2a8]
sub edx, dword [ebp - 0x1f4]
mov dword [ebp - 0x2b4], edx
mov eax, dword [ebp - 0x2b8]
sub eax, dword [ebp - 0x2a4]
mov dword [ebp - 0x1a4], eax
mov ecx, dword [ebp - 0x2b4]
shl ecx, 4
mov dword [ebp - 0x2b0], ecx
mov edx, dword [ebp - 0x1a4]
mov dword [ebp - 0x2a0], edx
mov eax, dword [ebp - 0x2b0]
or eax, dword [ebp - 0x2a0]
mov dword [ebp - 0x24c], eax
mov cl, byte [ebp - 0x24c]
mov byte [ebp - 0x1f5], cl
movzx edx, byte [ebp - 0x35]
mov al, byte [ebp + edx - 0x148]
mov byte [ebp - 0x2a9], al
movzx ecx, byte [ebp - 0x15b]
movzx edx, byte [ebp + ecx - 0x148]
movzx eax, byte [ebp - 0x45]
add eax, edx
mov byte [ebp - 0x45], al
mov cl, byte [ebp - 0x15b]
add cl, 1
mov byte [ebp - 0x15b], cl
movzx edx, byte [ebp - 0x45]
movzx eax, byte [ebp - 0x35]
mov cl, byte [ebp + edx - 0x148]
mov byte [ebp + eax - 0x148], cl
movzx edx, byte [ebp - 0x151]
movzx eax, byte [ebp - 0x45]
mov cl, byte [ebp + edx - 0x148]
mov byte [ebp + eax - 0x148], cl
movzx edx, byte [ebp - 0x15b]
movzx eax, byte [ebp - 0x151]
mov cl, byte [ebp + edx - 0x148]
mov byte [ebp + eax - 0x148], cl
movzx edx, byte [ebp - 0x15b]
mov al, byte [ebp - 0x2a9]
mov byte [ebp + edx - 0x148], al
movzx ecx, byte [ebp - 0x2a9]
movzx edx, byte [ebp + ecx - 0x148]
movzx eax, byte [ebp - 0x149]
add eax, edx
mov byte [ebp - 0x149], al
movzx ecx, byte [ebp - 0x1f5]
movzx edx, byte [ebp - 0x45]
movzx eax, byte [ebp + edx - 0x148]
movzx edx, byte [ebp - 0x15b]
movzx edx, byte [ebp + edx - 0x148]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x148]
xor ecx, eax
movzx edx, byte [ebp - 0x151]
movzx eax, byte [ebp + edx - 0x148]
movzx edx, byte [ebp - 0x35]
movzx edx, byte [ebp + edx - 0x148]
add eax, edx
movzx edx, byte [ebp - 0x149]
movzx edx, byte [ebp + edx - 0x148]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x148]
movzx edx, byte [ebp + eax - 0x148]
xor ecx, edx
mov byte [ebp - 0x151], cl
mov al, byte [ebp - 0x1f5]
mov byte [ebp - 0x35], al
mov cl, byte [ebp - 0x151]
mov byte [ebp - 0x299], cl
cmp dword [ebp - 0x254], 0
jle 0x9562e9
mov edx, dword [ebp - 0x254]
mov al, byte [ebp - 0x299]
mov byte [ebp + edx - 0x2d], al
mov ecx, dword [ebp - 0x254]
add ecx, 1
mov dword [ebp - 0x254], ecx
mov edx, dword [ebp - 0x250]
add edx, 1
mov dword [ebp - 0x250], edx
mov eax, dword [ebp - 0x254]
shl eax, 1
mov dword [ebp - 0x194], eax
mov ecx, dword [ebp - 0x40]
add ecx, dword [ebp - 0x194]
movzx edx, byte [ecx]
mov dword [ebp - 0x2a8], edx
fld qword [0x9eb568]
fstp qword [ebp - 0x1f0]
fld qword [0x9eb560]
fstp qword [ebp - 0x248]
fld qword [0x9eb558]
fstp qword [ebp - 0x298]
fld qword [0x9eb550]
fstp qword [ebp - 0x1a0]
fld qword [0x9eb548]
fstp qword [ebp - 0x1e8]
fld qword [ebp - 0x248]
fadd qword [ebp - 0x1e8]
fstp qword [ebp - 0x248]
fld qword [ebp - 0x248]
fsub qword [ebp - 0x1e8]
fstp qword [ebp - 0x248]
fld qword [ebp - 0x1a0]
fmul qword [ebp - 0x1e8]
fstp qword [ebp - 0x1a0]
fld qword [ebp - 0x1f0]
fmul qword [ebp - 0x1e8]
fstp qword [ebp - 0x1f0]
fld qword [ebp - 0x1a0]
fsub qword [ebp - 0x1e8]
fstp qword [ebp - 0x1a0]
fld qword [ebp - 0x1e8]
fcomp qword [ebp - 0x1f0]
fnstsw ax
test ah, 5
jp 0x956436
fld qword [ebp - 0x1e8]
fadd qword [ebp - 0x248]
fstp qword [ebp - 0x1e8]
fld qword [ebp - 0x298]
fadd qword [ebp - 0x1e8]
fstp qword [ebp - 0x298]
fld qword [ebp - 0x298]
fadd qword [ebp - 0x1e8]
fstp qword [ebp - 0x298]
fld qword [ebp - 0x298]
fadd qword [ebp - 0x1e8]
fstp qword [ebp - 0x298]
fld qword [ebp - 0x248]
fsub qword [ebp - 0x1a0]
fstp qword [ebp - 0x248]
mov dword [ebp - 0x1f4], 0x74
jmp 0x956490
fld qword [ebp - 0x298]
fdiv qword [ebp - 0x1e8]
fstp qword [ebp - 0x298]
fld qword [ebp - 0x1a0]
fsub qword [ebp - 0x1f0]
fstp qword [ebp - 0x1a0]
fld qword [ebp - 0x1e8]
fmul qword [ebp - 0x248]
fstp qword [ebp - 0x1e8]
fld qword [ebp - 0x248]
fadd qword [ebp - 0x1a0]
fstp qword [ebp - 0x248]
fld qword [ebp - 0x1f0]
fsub qword [ebp - 0x298]
fstp qword [ebp - 0x1f0]
mov eax, dword [ebp - 0x254]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x22c], ecx
mov edx, dword [ebp - 0x40]
add edx, dword [ebp - 0x22c]
movzx eax, byte [edx]
mov dword [ebp - 0x2b8], eax
mov dword [ebp - 0x2a4], 0x30
mov ecx, dword [ebp - 0x2a8]
sub ecx, dword [ebp - 0x1f4]
mov dword [ebp - 0x2b4], ecx
mov edx, dword [ebp - 0x2b8]
sub edx, dword [ebp - 0x2a4]
mov dword [ebp - 0x1a4], edx
fld dword [0x9d3650]
fstp dword [ebp - 0x23c]
fld dword [0x9e04f8]
fstp dword [ebp - 0x28c]
fld dword [0x9eb540]
fstp dword [ebp - 0x198]
fld dword [0x9eb53c]
fstp dword [ebp - 0x1dc]
fld dword [0x9d2e30]
fstp dword [ebp - 0x208]
fld dword [ebp - 0x23c]
fmul dword [ebp - 0x208]
fstp dword [ebp - 0x23c]
fld dword [ebp - 0x23c]
fsub dword [ebp - 0x208]
fstp dword [ebp - 0x23c]
fld dword [ebp - 0x198]
fsub dword [ebp - 0x208]
fstp dword [ebp - 0x198]
fld dword [ebp - 0x23c]
fmul dword [ebp - 0x208]
fstp dword [ebp - 0x23c]
fld dword [ebp - 0x1dc]
fadd dword [ebp - 0x208]
fstp dword [ebp - 0x1dc]
fld dword [ebp - 0x208]
fld dword [ebp - 0x23c]
fcompp
fnstsw ax
test ah, 0x41
jne 0x9565f9
fld dword [ebp - 0x208]
fadd dword [ebp - 0x23c]
fstp dword [ebp - 0x208]
fld dword [ebp - 0x28c]
fsub dword [ebp - 0x198]
fstp dword [ebp - 0x28c]
fld dword [ebp - 0x1dc]
fsub dword [ebp - 0x208]
fstp dword [ebp - 0x1dc]
fld dword [ebp - 0x208]
fmul dword [ebp - 0x23c]
fstp dword [ebp - 0x208]
fld dword [ebp - 0x23c]
fsub dword [ebp - 0x28c]
fstp dword [ebp - 0x23c]
mov eax, dword [ebp - 0x2b4]
shl eax, 4
mov dword [ebp - 0x2b0], eax
jmp 0x956778
fld dword [ebp - 0x28c]
fmul dword [ebp - 0x198]
fstp dword [ebp - 0x28c]
fld dword [ebp - 0x198]
fdiv dword [ebp - 0x1dc]
fstp dword [ebp - 0x198]
fld dword [ebp - 0x23c]
fdiv dword [ebp - 0x28c]
fstp dword [ebp - 0x23c]
fld dword [ebp - 0x1dc]
fdiv dword [ebp - 0x208]
fstp dword [ebp - 0x1dc]
fld dword [ebp - 0x198]
fsub dword [ebp - 0x1dc]
fstp dword [ebp - 0x198]
fld dword [ebp - 0x198]
fsub dword [ebp - 0x208]
fstp dword [ebp - 0x198]
fld dword [ebp - 0x208]
fadd dword [ebp - 0x28c]
fstp dword [ebp - 0x208]
fld dword [ebp - 0x28c]
fsub dword [ebp - 0x1dc]
fstp dword [ebp - 0x28c]
fld dword [ebp - 0x198]
fadd dword [ebp - 0x208]
fstp dword [ebp - 0x198]
fld dword [ebp - 0x28c]
fdiv dword [ebp - 0x1dc]
fstp dword [ebp - 0x28c]
fld dword [ebp - 0x208]
fld dword [ebp - 0x28c]
fcompp
fnstsw ax
test ah, 0x41
jne 0x95671e
fld dword [ebp - 0x1dc]
fsub dword [ebp - 0x23c]
fstp dword [ebp - 0x1dc]
fld dword [ebp - 0x198]
fmul dword [ebp - 0x208]
fstp dword [ebp - 0x198]
fld dword [ebp - 0x28c]
fdiv dword [ebp - 0x1dc]
fstp dword [ebp - 0x28c]
fld dword [ebp - 0x28c]
fsub dword [ebp - 0x1dc]
fstp dword [ebp - 0x28c]
fld dword [ebp - 0x23c]
fmul dword [ebp - 0x198]
fstp dword [ebp - 0x23c]
jmp 0x956778
fld dword [ebp - 0x28c]
fadd dword [ebp - 0x1dc]
fstp dword [ebp - 0x28c]
fld dword [ebp - 0x208]
fmul dword [ebp - 0x28c]
fstp dword [ebp - 0x208]
fld dword [ebp - 0x208]
fsub dword [ebp - 0x28c]
fstp dword [ebp - 0x208]
fld dword [ebp - 0x23c]
fsub dword [ebp - 0x198]
fstp dword [ebp - 0x23c]
fld dword [ebp - 0x198]
fdiv dword [ebp - 0x208]
fstp dword [ebp - 0x198]
mov ecx, dword [ebp - 0x1a4]
mov dword [ebp - 0x2a0], ecx
mov edx, dword [ebp - 0x2b0]
or edx, dword [ebp - 0x2a0]
mov dword [ebp - 0x24c], edx
mov al, byte [ebp - 0x24c]
mov byte [ebp - 0x1f5], al
movzx ecx, byte [ebp - 0x35]
mov dl, byte [ebp + ecx - 0x148]
mov byte [ebp - 0x2a9], dl
movzx eax, byte [ebp - 0x15b]
movzx ecx, byte [ebp + eax - 0x148]
movzx edx, byte [ebp - 0x45]
add edx, ecx
mov byte [ebp - 0x45], dl
mov al, byte [ebp - 0x15b]
add al, 1
mov byte [ebp - 0x15b], al
fld dword [0x9eb538]
fstp dword [ebp - 0x1b8]
fld dword [0x9eb534]
fstp dword [ebp - 0x170]
fld dword [0x9eb530]
fstp dword [ebp - 0x264]
fld dword [0x9eb52c]
fstp dword [ebp - 0x204]
fld dword [0x9eb528]
fstp dword [ebp - 0x1b4]
fld dword [0x9d76fc]
fstp dword [ebp - 0x16c]
fld dword [ebp - 0x264]
fadd dword [ebp - 0x16c]
fstp dword [ebp - 0x264]
fld dword [ebp - 0x204]
fadd dword [ebp - 0x16c]
fstp dword [ebp - 0x204]
fld dword [ebp - 0x1b4]
fmul dword [ebp - 0x16c]
fstp dword [ebp - 0x1b4]
fld dword [ebp - 0x1b8]
fsub dword [ebp - 0x16c]
fstp dword [ebp - 0x1b8]
fld dword [ebp - 0x204]
fmul dword [ebp - 0x16c]
fstp dword [ebp - 0x204]
fld dword [ebp - 0x264]
fsub dword [ebp - 0x16c]
fstp dword [ebp - 0x264]
fld dword [ebp - 0x204]
fld dword [ebp - 0x16c]
fcompp
fnstsw ax
test ah, 0x41
jne 0x956a72
fld dword [ebp - 0x16c]
fsub dword [ebp - 0x1b8]
fstp dword [ebp - 0x16c]
fld dword [ebp - 0x1b4]
fadd dword [ebp - 0x16c]
fstp dword [ebp - 0x1b4]
fld dword [ebp - 0x16c]
fsub dword [ebp - 0x1b8]
fstp dword [ebp - 0x16c]
fld dword [ebp - 0x170]
fadd dword [ebp - 0x264]
fstp dword [ebp - 0x170]
fld dword [ebp - 0x16c]
fadd dword [ebp - 0x1b8]
fstp dword [ebp - 0x16c]
fld dword [ebp - 0x1b4]
fmul dword [ebp - 0x16c]
fstp dword [ebp - 0x1b4]
fld dword [ebp - 0x204]
fdiv dword [ebp - 0x1b4]
fstp dword [ebp - 0x204]
fld dword [ebp - 0x170]
fsub dword [ebp - 0x264]
fstp dword [ebp - 0x170]
fld dword [ebp - 0x1b8]
fsub dword [ebp - 0x170]
fstp dword [ebp - 0x1b8]
fld dword [ebp - 0x204]
fmul dword [ebp - 0x1b4]
fstp dword [ebp - 0x204]
fld dword [ebp - 0x204]
fdiv dword [ebp - 0x1b4]
fstp dword [ebp - 0x204]
fld dword [ebp - 0x16c]
fadd dword [ebp - 0x1b8]
fstp dword [ebp - 0x16c]
fld dword [ebp - 0x204]
fld dword [ebp - 0x16c]
fcompp
fnstsw ax
test ah, 5
jp 0x956a01
fld dword [ebp - 0x1b4]
fmul dword [ebp - 0x1b8]
fstp dword [ebp - 0x1b4]
fld dword [ebp - 0x1b8]
fdiv dword [ebp - 0x264]
fstp dword [ebp - 0x1b8]
fld dword [ebp - 0x264]
fdiv dword [ebp - 0x1b4]
fstp dword [ebp - 0x264]
fld dword [ebp - 0x264]
fdiv dword [ebp - 0x1b4]
fstp dword [ebp - 0x264]
fld dword [ebp - 0x16c]
fmul dword [ebp - 0x170]
fstp dword [ebp - 0x16c]
fld dword [ebp - 0x1b4]
fdiv dword [ebp - 0x1b8]
fstp dword [ebp - 0x1b4]
jmp 0x956a6d
fld dword [ebp - 0x16c]
fdiv dword [ebp - 0x1b8]
fstp dword [ebp - 0x16c]
fld dword [ebp - 0x264]
fdiv dword [ebp - 0x204]
fstp dword [ebp - 0x264]
fld dword [ebp - 0x1b4]
fdiv dword [ebp - 0x16c]
fstp dword [ebp - 0x1b4]
fld dword [ebp - 0x16c]
fsub dword [ebp - 0x1b8]
fstp dword [ebp - 0x16c]
fld dword [ebp - 0x264]
fadd dword [ebp - 0x204]
fstp dword [ebp - 0x264]
fld dword [ebp - 0x204]
fdiv dword [ebp - 0x1b4]
fstp dword [ebp - 0x204]
jmp 0x956af4
fld dword [ebp - 0x264]
fmul dword [ebp - 0x1b4]
fstp dword [ebp - 0x264]
fld dword [ebp - 0x1b8]
fsub dword [ebp - 0x264]
fstp dword [ebp - 0x1b8]
fld dword [ebp - 0x16c]
fmul dword [ebp - 0x170]
fstp dword [ebp - 0x16c]
fld dword [ebp - 0x1b8]
fadd dword [ebp - 0x264]
fstp dword [ebp - 0x1b8]
fld dword [ebp - 0x170]
fsub dword [ebp - 0x204]
fstp dword [ebp - 0x170]
fld dword [ebp - 0x1b4]
fsub dword [ebp - 0x1b8]
fstp dword [ebp - 0x1b4]
movzx ecx, byte [ebp - 0x45]
movzx edx, byte [ebp - 0x35]
mov al, byte [ebp + ecx - 0x148]
mov byte [ebp + edx - 0x148], al
movzx ecx, byte [ebp - 0x151]
movzx edx, byte [ebp - 0x45]
mov al, byte [ebp + ecx - 0x148]
mov byte [ebp + edx - 0x148], al
movzx ecx, byte [ebp - 0x15b]
movzx edx, byte [ebp - 0x151]
mov al, byte [ebp + ecx - 0x148]
mov byte [ebp + edx - 0x148], al
movzx ecx, byte [ebp - 0x15b]
mov dl, byte [ebp - 0x2a9]
mov byte [ebp + ecx - 0x148], dl
movzx eax, byte [ebp - 0x2a9]
movzx ecx, byte [ebp + eax - 0x148]
movzx edx, byte [ebp - 0x149]
add edx, ecx
mov byte [ebp - 0x149], dl
movzx eax, byte [ebp - 0x1f5]
movzx ecx, byte [ebp - 0x45]
movzx edx, byte [ebp + ecx - 0x148]
movzx ecx, byte [ebp - 0x15b]
movzx ecx, byte [ebp + ecx - 0x148]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x148]
xor eax, edx
movzx ecx, byte [ebp - 0x151]
movzx edx, byte [ebp + ecx - 0x148]
movzx ecx, byte [ebp - 0x35]
movzx ecx, byte [ebp + ecx - 0x148]
add edx, ecx
movzx ecx, byte [ebp - 0x149]
movzx ecx, byte [ebp + ecx - 0x148]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x148]
movzx ecx, byte [ebp + edx - 0x148]
xor eax, ecx
mov byte [ebp - 0x151], al
mov dl, byte [ebp - 0x1f5]
mov byte [ebp - 0x35], dl
mov al, byte [ebp - 0x151]
mov byte [ebp - 0x299], al
cmp dword [ebp - 0x254], 0
jle 0x956c09
mov ecx, dword [ebp - 0x254]
mov dl, byte [ebp - 0x299]
mov byte [ebp + ecx - 0x2d], dl
mov byte [ebp - 0x13], 0
jmp 0x956c40
mov dword [ebp - 0x2d0], 0
jmp 0x956c2a
mov eax, dword [ebp - 0x2d0]
add eax, 1
mov dword [ebp - 0x2d0], eax
cmp dword [ebp - 0x2d0], 0x1a
jge 0x956c40
mov ecx, dword [ebp - 0x2d0]
mov byte [ebp + ecx - 0x2c], 0
jmp 0x956c1b
lea edx, [ebp - 0x2c]
mov dword [ebp - 0x318], edx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x31c], eax
mov ecx, dword [ebp - 0x31c]
mov dword [ebp - 0x320], ecx
mov edx, dword [ebp - 0x318]
mov al, byte [edx]
mov byte [ebp - 0x321], al
mov ecx, dword [ebp - 0x31c]
mov dl, byte [ebp - 0x321]
mov byte [ecx], dl
mov eax, dword [ebp - 0x318]
add eax, 1
mov dword [ebp - 0x318], eax
mov ecx, dword [ebp - 0x31c]
add ecx, 1
mov dword [ebp - 0x31c], ecx
cmp byte [ebp - 0x321], 0
jne 0x956c5e
mov esp, ebp
pop ebp
ret