Function at 0x50ce8c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
push eax
mov eax, 0x7f98
call fcn.0053c440
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x7f44], eax
mov dword [ebp - 0x7f34], edx
fld dword [ebp + 0xc]
fld dword [ebp + 0x10]
fxch st(1)
lea eax, [edx*4 + 0x1e]
and eax, 0xfffffff0
call fcn.0053c440
lea eax, [esp + 0x17]
and eax, 0xfffffff0
mov dword [ebp - 0x7f1c], eax
mov dword [esp], 0x44
fstp dword [ebp - 0x7f68]
fstp dword [ebp - 0x7f78]
call sub.msvcrt.dll_malloc
mov dword [ebp - 0x7f38], eax
lea edx, [ebp - 0x7ef8]
mov dword [ebp - 0x7f8c], edx
mov ecx, 0x7700
xor eax, eax
mov edi, edx
rep stosb byte es:[edi], al
fldz
fld dword [ebp - 0x7f68]
fucom st(1)
fnstsw ax
fxch st(1)
sahf
seta byte [ebp - 0x7f30]
fucomp st(1)
fnstsw ax
test ah, 0x45
sete byte [ebp - 0x7f40]
mov dword [ebp - 0x7f10], edx
mov dword [ebp - 0x7f08], 0x5a6360
mov dword [ebp - 0x7f24], 0
lea edx, [ebp - 0xf8]
mov dword [ebp - 0x7f94], edx
fld dword [0x5abcec]
fld dword [ebp - 0x7f78]
mov ecx, dword [ebp - 0x7f24]
shl ecx, 2
lea ebx, [ecx + 3]
lea edx, [ebx*4 + 0x5a6200]
xor esi, esi
cmp ecx, 0x57
jle 0x50d03e
fld dword [0x5abce8]
jmp 0x50cf83
fxch st(2)
inc esi
lea edi, [ecx + 1]
cmp edi, 0x57
jle 0x50d020
fld dword [0x5abce8]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
ja 0x50d037
fstp st(1)
jmp 0x50cfa9
fstp st(1)
add ecx, 2
cmp ecx, 0x57
jle 0x50d00c
fld dword [0x5abce8]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
ja 0x50d01c
fstp st(1)
jmp 0x50cfc6
fstp st(1)
cmp ebx, 0x57
jle 0x50cff9
fld dword [0x5abce8]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
ja 0x50d008
fstp st(1)
jmp 0x50cfe0
fstp st(1)
fstp dword [ebp + esi*4 - 0xfc]
add edx, 4
cmp esi, 0x38
je 0x50d05d
mov ecx, edi
lea ebx, [edi + 3]
jmp 0x50cf70
fld dword [edx]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0x50cfde
fstp st(0)
jmp 0x50cfe0
fstp st(0)
jmp 0x50cfe0
fld dword [edx - 4]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0x50cfc4
fstp st(0)
jmp 0x50cfc6
fstp st(0)
jmp 0x50cfc6
fld dword [edx - 8]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0x50cfa7
fstp st(0)
jmp 0x50cfa9
fstp st(0)
jmp 0x50cfa9
fld dword [edx - 0xc]
fxch st(2)
fucom st(2)
fnstsw ax
sahf
ja 0x50cf81
fstp st(2)
fxch st(1)
fld st(0)
fxch st(2)
fxch st(1)
jmp 0x50cf83
mov edx, dword [ebp - 0x7f10]
add edx, 0x1c0
mov ecx, dword [ebp - 0x7f10]
add ecx, 0x700
mov dword [ebp - 0x7f28], ecx
mov ebx, dword [ebp - 0x7f08]
jmp 0x50d0b1
test edi, 2
jne 0x50d0c4
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
test al, 2
je 0x50d098
movsw word es:[edi], word [esi]
test al, 1
je 0x50d09d
movsb byte es:[edi], byte [esi]
add edx, 0xe0
add ebx, 0xe0
cmp edx, dword [ebp - 0x7f28]
je 0x50d0cb
mov edi, edx
mov esi, ebx
mov eax, 0xe0
test dl, 1
je 0x50d083
movsb byte es:[edi], byte [esi]
mov al, 0xdf
jmp 0x50d083
movsw word es:[edi], word [esi]
sub eax, 2
jmp 0x50d08b
mov edi, dword [ebp - 0x7f10]
mov esi, dword [ebp - 0x7f08]
mov eax, 0xe0
test edi, 1
je 0x50d0e7
movsb byte es:[edi], byte [esi]
mov al, 0xdf
test edi, 2
je 0x50d0f4
movsw word es:[edi], word [esi]
sub eax, 2
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
test al, 2
je 0x50d101
movsw word es:[edi], word [esi]
test al, 1
je 0x50d106
movsb byte es:[edi], byte [esi]
mov esi, dword [ebp - 0x7f10]
add esi, 0xe0
mov dword [ebp - 0x7f18], esi
mov dword [ebp - 0x7f3c], esi
mov edi, esi
mov esi, dword [ebp - 0x7f08]
mov eax, 0xe0
test edi, 1
je 0x50d136
movsb byte es:[edi], byte [esi]
mov al, 0xdf
test edi, 2
je 0x50d143
movsw word es:[edi], word [esi]
sub eax, 2
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
test al, 2
je 0x50d150
movsw word es:[edi], word [esi]
test al, 1
je 0x50d155
movsb byte es:[edi], byte [esi]
xor ebx, ebx
imul esi, dword [ebp - 0x7f24], 0x700
cmp byte [ebp - 0x7f40], 0
je 0x50d379
cmp byte [ebp - 0x7f30], 0
je 0x50d32c
imul ecx, ebx, 0xe0
add ecx, esi
lea edx, [ebp - 0x7ef8]
lea ecx, [edx + ecx]
mov edx, 0x10
fldz
fst dword [ebp - 0x7f90]
mov edi, dword [ebp - 0x7f90]
mov eax, edx
sar eax, 0x1f
mov dword [ebp - 0x7f20], eax
xor eax, edx
sub eax, dword [ebp - 0x7f20]
fld st(1)
push eax
fimul dword [esp]
add esp, 4
fadd st(4)
fxch st(1)
fucom st(1)
fnstsw ax
sahf
ja 0x50d1d3
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0x50d1e1
fstp st(0)
jmp 0x50d1d5
fstp st(1)
mov dword [ebp - 0x7f90], edi
fld dword [ebp - 0x7f90]
fadd dword [ecx]
fstp dword [ecx]
dec edx
add ecx, 4
cmp edx, 0xffffffd8
jne 0x50d19f
fstp st(0)
inc ebx
cmp ebx, 8
jne 0x50d161
lea ebx, [ebp - 0x7f8]
mov edx, ebx
mov dword [ebp - 0x7f20], 0
fld dword [0x5abcf0]
mov dword [ebp - 0x7f48], ebx
mov ebx, dword [ebp - 0x7f10]
fld st(0)
mov ecx, dword [ebp - 0x7f24]
mov esi, dword [ebp - 0x7f44]
fadd dword [esi + ecx*4]
mov eax, dword [ebp - 0x7f20]
cmp eax, 2
jl 0x50d4bf
fld dword [0x5abcf4]
push eax
fimul dword [esp]
add esp, 4
faddp st(1)
fsub dword [0x5abcc8]
fstp dword [ebp - 0x7efc]
fld dword [ebp - 0x7efc]
xor eax, eax
fld dword [ebx + eax*4]
fadd st(1)
fstp dword [ebx + eax*4]
inc eax
cmp eax, 0x38
jne 0x50d261
fstp st(0)
mov edi, edx
lea esi, [ebp - 0xf8]
mov al, 0xe0
test dl, 1
jne 0x50d4b1
test edi, 2
jne 0x50d413
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
test al, 2
je 0x50d29d
movsw word es:[edi], word [esi]
test al, 1
je 0x50d2a2
movsb byte es:[edi], byte [esi]
fld dword [0x5abcf4]
fimul dword [ebp - 0x7f20]
fadd dword [0x5abcf0]
fsub dword [0x5abcc8]
fstp dword [ebp - 0x7efc]
fld dword [ebp - 0x7efc]
xor eax, eax
fld dword [edx + eax*4]
fadd st(1)
fstp dword [edx + eax*4]
inc eax
cmp eax, 0x38
jne 0x50d2c8
fstp st(0)
xor ecx, ecx
fld dword [ebx + ecx*4]
fld dword [edx + ecx*4]
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x45
jne 0x50d2f2
fstp dword [edx + ecx*4]
jmp 0x50d2f4
fstp st(0)
inc ecx
cmp ecx, 0x38
jne 0x50d2da
inc dword [ebp - 0x7f20]
mov ebx, dword [ebp - 0x7f18]
add edx, 0xe0
cmp dword [ebp - 0x7f20], 8
je 0x50d41d
mov edi, ebx
add edi, 0xe0
mov dword [ebp - 0x7f18], edi
jmp 0x50d21e
imul ecx, ebx, 0xe0
add ecx, esi
lea edi, [ebp - 0x7ef8]
lea ecx, [edi + ecx]
mov edx, 0x10
fldz
mov edi, edx
sar edi, 0x1f
mov eax, edi
xor eax, edx
sub eax, edi
fld st(1)
push eax
fimul dword [esp]
add esp, 4
fadd st(4)
fucom st(1)
fnstsw ax
sahf
jbe 0x50d365
fstp st(0)
fldz
fadd dword [ecx]
fstp dword [ecx]
dec edx
add ecx, 4
cmp edx, 0xffffffd8
jne 0x50d344
fstp st(0)
jmp 0x50d1f0
cmp byte [ebp - 0x7f30], 0
jne 0x50d3c0
imul edx, ebx, 0xe0
add edx, esi
lea ecx, [ebp - 0x7ef8]
lea edx, [ecx + edx]
mov eax, 0x10
mov edi, eax
sar edi, 0x1f
mov ecx, edi
xor ecx, eax
sub ecx, edi
fld st(0)
push ecx
fimul dword [esp]
add esp, 4
fadd st(3)
fadd dword [edx]
fstp dword [edx]
dec eax
add edx, 4
cmp eax, 0xffffffd8
jne 0x50d398
jmp 0x50d1f0
imul ecx, ebx, 0xe0
add ecx, esi
lea edi, [ebp - 0x7ef8]
lea ecx, [edi + ecx]
mov edx, 0x10
fldz
mov edi, edx
sar edi, 0x1f
mov eax, edi
xor eax, edx
sub eax, edi
fld st(1)
push eax
fimul dword [esp]
add esp, 4
fadd st(4)
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0x50d3fd
fstp st(1)
fldz
jmp 0x50d3ff
fxch st(1)
fadd dword [ecx]
fstp dword [ecx]
dec edx
add ecx, 4
cmp edx, 0xffffffd8
jne 0x50d3d8
fstp st(0)
jmp 0x50d1f0
movsw word es:[edi], word [esi]
sub eax, 2
jmp 0x50d290
fstp st(0)
mov ebx, dword [ebp - 0x7f48]
lea esi, [ebp - 0x7f8]
add esi, 0x620
mov edi, esi
mov ecx, dword [ebp - 0x7f3c]
mov esi, ebx
add ebx, 0xe0
xor edx, edx
fld dword [esi + edx*4]
fld dword [ebx + edx*4]
fucomp st(1)
fnstsw ax
test ah, 0x45
jne 0x50d457
fstp dword [ebx + edx*4]
jmp 0x50d459
fstp st(0)
inc edx
cmp edx, 0x38
jne 0x50d443
xor dl, dl
fld dword [ebx + edx*4]
fld dword [ecx + edx*4]
fucomp st(1)
fnstsw ax
test ah, 0x45
jne 0x50d475
fstp dword [ecx + edx*4]
jmp 0x50d477
fstp st(0)
inc edx
cmp edx, 0x38
jne 0x50d461
add ecx, 0xe0
cmp edi, ebx
jne 0x50d439
inc dword [ebp - 0x7f24]
add dword [ebp - 0x7f08], 0x540
cmp dword [ebp - 0x7f24], 0x11
je 0x50d4c9
mov eax, dword [ebp - 0x7f28]
mov dword [ebp - 0x7f10], eax
jmp 0x50cf5b
mov esi, dword [ebp - 0x7f94]
movsb byte es:[edi], byte [esi]
mov al, 0xdf
jmp 0x50d284
mov eax, 2
jmp 0x50d23e
fstp st(0)
fstp st(0)
fstp st(0)
mov dword [ebp - 0x7f44], 1
mov dword [ebp - 0x7f20], 0
fld dword [ebp + 8]
fstp qword [ebp - 0x7f10]
mov edi, dword [ebp - 0x7f34]
mov dword [esp], 0x20
call sub.msvcrt.dll_malloc
mov edx, dword [ebp - 0x7f20]
mov ecx, dword [ebp - 0x7f38]
mov dword [ecx + edx*4], eax
fld dword [0x5abcd4]
fimul dword [ebp - 0x7f20]
fstp qword [ebp - 0x7f30]
fld qword [0x5abd18]
fadd qword [ebp - 0x7f30]
fmul dword [0x5abcfc]
fstp qword [esp]
call sub.msvcrt.dll_exp
fdiv qword [ebp - 0x7f10]
fstp qword [esp]
call sub.msvcrt.dll_floor
fnstcw word [ebp - 0x7f02]
mov ax, word [ebp - 0x7f02]
mov ah, 0xc
mov word [ebp - 0x7f04], ax
fldcw word [ebp - 0x7f04]
fistp dword [ebp - 0x7f00]
fldcw word [ebp - 0x7f02]
mov ebx, dword [ebp - 0x7f00]
fld dword [ebp + 8]
push ebx
fimul dword [esp]
add esp, 4
fadd dword [0x5abcb0]
fstp qword [esp]
call sub.msvcrt.dll_log
fld dword [0x5abd00]
fmul st(1), st(0)
fxch st(1)
fsub qword [0x5abd18]
fadd st(0)
fstp qword [esp]
fstp qword [ebp - 0x7f68]
call sub.msvcrt.dll_ceil
fnstcw word [ebp - 0x7f02]
mov ax, word [ebp - 0x7f02]
mov ah, 0xc
mov word [ebp - 0x7f04], ax
fldcw word [ebp - 0x7f04]
fistp dword [ebp - 0x7f24]
fldcw word [ebp - 0x7f02]
inc ebx
fld dword [ebp + 8]
push ebx
fimul dword [esp]
add esp, 4
fstp qword [esp]
call sub.msvcrt.dll_log
fld qword [ebp - 0x7f68]
fmulp st(1)
fsub qword [0x5abd18]
fadd st(0)
fstp qword [esp]
call sub.msvcrt.dll_floor
mov eax, dword [ebp - 0x7f20]
cmp dword [ebp - 0x7f24], eax
jle 0x50dc9b
mov dword [ebp - 0x7f24], eax
fnstcw word [ebp - 0x7f02]
mov ax, word [ebp - 0x7f02]
mov ah, 0xc
mov word [ebp - 0x7f04], ax
fldcw word [ebp - 0x7f04]
fistp dword [ebp - 0x7f3c]
fldcw word [ebp - 0x7f02]
cmp dword [ebp - 0x7f3c], 0x10
jle 0x50d653
mov dword [ebp - 0x7f3c], 0x10
imul eax, dword [ebp - 0x7f44], 0x700
lea edx, [ebp + eax - 0x7e1c]
mov dword [ebp - 0x7f48], edx
mov dword [ebp - 0x7f28], 0
imul ecx, dword [ebp - 0x7f24], 0x700
mov dword [ebp - 0x7f54], ecx
mov dword [ebp - 0x7f58], eax
mov esi, dword [ebp - 0x7f28]
shl esi, 2
mov dword [ebp - 0x7f40], esi
mov ebx, esi
mov eax, dword [ebp - 0x7f20]
mov edx, dword [ebp - 0x7f38]
add ebx, dword [edx + eax*4]
mov dword [esp], 0xe8
call sub.msvcrt.dll_malloc
mov dword [ebx], eax
test edi, edi
jle 0x50d6d0
xor eax, eax
mov ecx, dword [ebp - 0x7f1c]
mov dword [ecx + eax*4], 0x4479c000
inc eax
cmp eax, edi
jne 0x50d6be
mov esi, dword [ebp - 0x7f3c]
cmp dword [ebp - 0x7f24], esi
jg 0x50d8f9
imul eax, dword [ebp - 0x7f28], 0xe0
mov ecx, dword [ebp - 0x7f54]
lea edx, [eax + ecx + 0xdc]
lea esi, [ebp - 0x7ef8]
add esi, edx
mov dword [ebp - 0x7f4c], esi
mov edx, dword [ebp - 0x7f24]
mov dword [ebp - 0x7f34], edx
mov dword [ebp - 0x7f50], eax
fld qword [0x5abd28]
fimul dword [ebp - 0x7f34]
fstp qword [ebp - 0x7f18]
mov edx, dword [ebp - 0x7f34]
shl edx, 8
lea eax, [edx*8]
sub eax, edx
add eax, dword [ebp - 0x7f50]
lea esi, [ebp - 0x7ef8]
add esi, eax
xor ebx, ebx
mov dword [ebp - 0x7f08], 0
nop
fld qword [0x5abd20]
fimul dword [ebp - 0x7f08]
fadd qword [ebp - 0x7f18]
fld st(0)
fsub dword [0x5abd08]
fld dword [0x5abcf8]
fadd st(1), st(0)
fld dword [0x5abcfc]
fmul st(2), st(0)
fxch st(2)
fstp qword [esp]
fxch st(2)
fstp qword [ebp - 0x7f68]
fstp qword [ebp - 0x7f78]
fstp qword [ebp - 0x7f88]
call sub.msvcrt.dll_exp
fdiv qword [ebp - 0x7f10]
fnstcw word [ebp - 0x7f02]
mov ax, word [ebp - 0x7f02]
mov ah, 0xc
mov word [ebp - 0x7f04], ax
fldcw word [ebp - 0x7f04]
fistp dword [ebp - 0x7f00]
fldcw word [ebp - 0x7f02]
mov eax, dword [ebp - 0x7f00]
fld qword [ebp - 0x7f68]
fsub dword [0x5abd0c]
fld qword [ebp - 0x7f88]
faddp st(1)
fld qword [ebp - 0x7f78]
fmulp st(1)
fstp qword [esp]
mov dword [ebp - 0x7f68], eax
call sub.msvcrt.dll_exp
fdiv qword [ebp - 0x7f10]
fadd dword [0x5abcb0]
fnstcw word [ebp - 0x7f02]
mov dx, word [ebp - 0x7f02]
mov dh, 0xc
mov word [ebp - 0x7f04], dx
fldcw word [ebp - 0x7f04]
fistp dword [ebp - 0x7f00]
fldcw word [ebp - 0x7f02]
mov ecx, dword [ebp - 0x7f00]
cmp ebx, edi
mov eax, dword [ebp - 0x7f68]
jle 0x50d844
mov ebx, edi
test eax, eax
js 0x50dba8
cmp ebx, eax
jle 0x50d852
mov ebx, eax
test ecx, ecx
js 0x50dba0
cmp ecx, edi
jle 0x50d860
mov ecx, edi
cmp ebx, ecx
jge 0x50d893
cmp edi, ebx
jle 0x50d893
mov eax, dword [ebp - 0x7f1c]
lea edx, [eax + ebx*4]
jmp 0x50d87b
add edx, 4
cmp edi, ebx
jle 0x50d893
fld dword [esi]
fld dword [edx]
fucomp st(1)
fnstsw ax
test ah, 0x45
jne 0x50d88c
fstp dword [edx]
jmp 0x50d88e
fstp st(0)
inc ebx
cmp ebx, ecx
jl 0x50d874
inc dword [ebp - 0x7f08]
add esi, 4
cmp dword [ebp - 0x7f08], 0x38
jne 0x50d758
cmp edi, ebx
jle 0x50d8d7
mov ecx, dword [ebp - 0x7f1c]
lea edx, [ecx + ebx*4]
mov ecx, dword [ebp - 0x7f4c]
fld dword [ecx]
fld dword [edx]
fucomp st(1)
fnstsw ax
test ah, 0x45
jne 0x50d8cd
fstp dword [edx]
jmp 0x50d8cf
fstp st(0)
inc ebx
add edx, 4
cmp edi, ebx
jg 0x50d8bc
inc dword [ebp - 0x7f34]
add dword [ebp - 0x7f4c], 0x700
mov esi, dword [ebp - 0x7f3c]
cmp dword [ebp - 0x7f34], esi
jle 0x50d719
cmp dword [ebp - 0x7f20], 0x10
je 0x50daa7
imul esi, dword [ebp - 0x7f28], 0xe0
add esi, dword [ebp - 0x7f58]
lea eax, [ebp - 0x7ef8]
lea esi, [eax + esi]
xor ebx, ebx
mov dword [ebp - 0x7f08], 0
fld qword [0x5abd20]
fimul dword [ebp - 0x7f08]
fadd qword [ebp - 0x7f30]
fld st(0)
fsub dword [0x5abd08]
fld dword [0x5abcf8]
fadd st(1), st(0)
fld dword [0x5abcfc]
fmul st(2), st(0)
fxch st(2)
fstp qword [esp]
fxch st(2)
fstp qword [ebp - 0x7f68]
fstp qword [ebp - 0x7f78]
fstp qword [ebp - 0x7f88]
call sub.msvcrt.dll_exp
fdiv qword [ebp - 0x7f10]
fnstcw word [ebp - 0x7f02]
mov ax, word [ebp - 0x7f02]
mov ah, 0xc
mov word [ebp - 0x7f04], ax
fldcw word [ebp - 0x7f04]
fistp dword [ebp - 0x7f00]
fldcw word [ebp - 0x7f02]
mov eax, dword [ebp - 0x7f00]
fld qword [ebp - 0x7f68]
fsub dword [0x5abd0c]
fld qword [ebp - 0x7f88]
faddp st(1)
fld qword [ebp - 0x7f78]
fmulp st(1)
fstp qword [esp]
mov dword [ebp - 0x7f68], eax
call sub.msvcrt.dll_exp
fdiv qword [ebp - 0x7f10]
fadd dword [0x5abcb0]
fnstcw word [ebp - 0x7f02]
mov dx, word [ebp - 0x7f02]
mov dh, 0xc
mov word [ebp - 0x7f04], dx
fldcw word [ebp - 0x7f04]
fistp dword [ebp - 0x7f00]
fldcw word [ebp - 0x7f02]
mov ecx, dword [ebp - 0x7f00]
cmp ebx, edi
mov eax, dword [ebp - 0x7f68]
jle 0x50da17
mov ebx, edi
test eax, eax
js 0x50dbb6
cmp ebx, eax
jle 0x50da25
mov ebx, eax
test ecx, ecx
js 0x50dbaf
cmp ecx, edi
jle 0x50da33
mov ecx, edi
cmp ebx, ecx
jge 0x50da67
cmp edi, ebx
jle 0x50da67
mov eax, dword [ebp - 0x7f1c]
lea edx, [eax + ebx*4]
jmp 0x50da4f
add edx, 4
cmp edi, ebx
jle 0x50da67
fld dword [esi]
fld dword [edx]
fucomp st(1)
fnstsw ax
test ah, 0x45
jne 0x50da60
fstp dword [edx]
jmp 0x50da62
fstp st(0)
inc ebx
cmp ebx, ecx
jl 0x50da48
inc dword [ebp - 0x7f08]
add esi, 4
cmp dword [ebp - 0x7f08], 0x38
jne 0x50d92b
mov ecx, dword [ebp - 0x7f1c]
lea edx, [ecx + ebx*4]
jmp 0x50daa3
mov esi, dword [ebp - 0x7f48]
fld dword [esi]
fld dword [edx]
fucomp st(1)
fnstsw ax
sahf
jbe 0x50da9d
fstp dword [edx]
jmp 0x50da9f
fstp st(0)
inc ebx
add edx, 4
cmp ebx, edi
jl 0x50da88
mov ebx, 8
xor esi, esi
fld dword [0x5abd04]
mov dword [ebp - 0x7f08], esi
mov ecx, dword [ebp - 0x7f40]
mov dword [ebp - 0x7f18], edi
jmp 0x50daf7
mov eax, dword [ebp - 0x7f20]
mov esi, dword [ebp - 0x7f38]
mov edx, dword [esi + eax*4]
mov eax, dword [edx + ecx]
mov dword [eax + ebx], 0xc479c000
inc dword [ebp - 0x7f08]
add ebx, 4
cmp dword [ebp - 0x7f08], 0x38
je 0x50dbdb
fld st(0)
fimul dword [ebp - 0x7f08]
fadd qword [ebp - 0x7f30]
fsub dword [0x5abd10]
fadd dword [0x5abcf8]
fmul dword [0x5abcfc]
fstp qword [esp]
mov dword [ebp - 0x7f78], ecx
fstp qword [ebp - 0x7f68]
call sub.msvcrt.dll_exp
fdiv qword [ebp - 0x7f10]
fnstcw word [ebp - 0x7f02]
mov ax, word [ebp - 0x7f02]
mov ah, 0xc
mov word [ebp - 0x7f04], ax
fldcw word [ebp - 0x7f04]
fistp dword [ebp - 0x7f00]
fldcw word [ebp - 0x7f02]
mov eax, dword [ebp - 0x7f00]
test eax, eax
mov ecx, dword [ebp - 0x7f78]
fld qword [ebp - 0x7f68]
js 0x50dbbd
cmp dword [ebp - 0x7f18], eax
jle 0x50dac8
mov edi, dword [ebp - 0x7f20]
mov esi, dword [ebp - 0x7f38]
mov edx, dword [esi + edi*4]
mov edi, dword [edx + ecx]
mov esi, dword [ebp - 0x7f1c]
mov eax, dword [esi + eax*4]
mov dword [edi + ebx], eax
jmp 0x50dae1
xor ecx, ecx
jmp 0x50d85a
xor eax, eax
jmp 0x50d84c
xor ecx, ecx
jmp 0x50da2d
xor eax, eax
jmp 0x50da1f
mov esi, dword [ebp - 0x7f20]
mov edi, dword [ebp - 0x7f38]
mov edx, dword [edi + esi*4]
mov eax, dword [edx + ecx]
mov dword [eax + ebx], 0xc479c000
jmp 0x50dae1
fstp st(0)
mov edi, dword [ebp - 0x7f18]
mov eax, dword [ebp - 0x7f40]
mov ebx, dword [edx + eax]
xor ecx, ecx
fld dword [0x5abd14]
fld dword [ebx + ecx*4 + 8]
fucomp st(1)
fnstsw ax
sahf
ja 0x50dc09
inc ecx
cmp ecx, 0x10
jne 0x50dbf4
fstp st(0)
jmp 0x50dc0b
fstp st(0)
mov dword [ebp - 0x7f00], ecx
fild dword [ebp - 0x7f00]
fstp dword [ebx]
mov esi, dword [ebp - 0x7f40]
mov ecx, dword [edx + esi]
mov edx, 0x37
fld dword [0x5abd14]
jmp 0x50dc35
dec edx
cmp edx, 0x11
je 0x50dc46
fld dword [ecx + edx*4 + 8]
fucomp st(1)
fnstsw ax
test ah, 0x45
jne 0x50dc2f
fstp st(0)
jmp 0x50dc48
fstp st(0)
mov dword [ebp - 0x7f00], edx
fild dword [ebp - 0x7f00]
fstp dword [ecx + 4]
inc dword [ebp - 0x7f28]
add dword [ebp - 0x7f48], 0xe0
cmp dword [ebp - 0x7f28], 8
jne 0x50d68a
inc dword [ebp - 0x7f20]
inc dword [ebp - 0x7f44]
cmp dword [ebp - 0x7f20], 0x11
jne 0x50d4f2
mov eax, dword [ebp - 0x7f38]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
leave
ret
mov eax, dword [ebp - 0x7f24]
not eax
sar eax, 0x1f
and dword [ebp - 0x7f24], eax
jmp 0x50d618