Function at 0x681cd0
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x134
push ebx
mov ebx, dword [ebp + 8]
mov eax, 0x14
push esi
fld qword [ebx + 0x78]
fcomp qword [0x71a450]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xb0], eax
push edi
fnstsw ax
xor esi, esi
mov edi, 0x24
mov ecx, 0xe
mov dword [esp + 0x2c], 0
test ah, 1
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0xa
mov dword [esp + 0x40], 0x63707274
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], 0x64657363
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], 0x28
mov dword [esp + 0x58], 0x77747074
mov dword [esp + 0x5c], esi
mov dword [esp + 0x64], 0x626b7074
mov dword [esp + 0x68], esi
mov dword [esp + 0x70], 0x72545243
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], 0x67545243
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], 0x62545243
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], 0x7258595a
mov dword [esp + 0x98], esi
mov dword [esp + 0xa0], 0x6758595a
mov dword [esp + 0xa4], esi
mov dword [esp + 0xac], 0x6258595a
mov dword [esp + 0xb0], esi
mov dword [esp + 0xc4], 0x1000000
jne 0x681e0b
mov eax, 1
jmp 0x681e0d
xor eax, eax
fld qword [ebx + 0x78]
fcomp qword [0x71a468]
mov dword [esp + eax*8 + 0x2c], esi
mov dword [esp + eax*8 + 0x30], 0x3ff00000
fnstsw ax
test ah, 0x40
jne 0x681ee3
fld qword [ebx + 0x70]
fsub qword [0x71a450]
fld qword [ebx + 0x78]
fsub qword [0x71a450]
fmulp st(1)
fcomp qword [0x71a468]
fnstsw ax
test ah, 0x41
je 0x681ee3
fld qword [ebx + 0x70]
fchs
fstp qword [esp + 0x18]
fld qword [esp + 0x34]
fadd qword [esp + 0x2c]
fmul qword [0x71a428]
fst qword [esp + 0x20]
fstp qword [ebx + 0x80]
fld qword [esp + 0x20]
fdiv qword [ebx + 0x78]
fld qword [esp + 0x18]
call fcn.006fb640
fsub qword [0x71a450]
fdiv qword [ebx + 0x70]
fld qword [0x71a450]
fdiv qword [esp + 0x20]
fsubp st(1)
fcomp qword [0x72b9d0]
fnstsw ax
test ah, 0x41
jne 0x681eac
mov eax, 1
jmp 0x681eae
xor eax, eax
fld qword [esp + 0x20]
dec edi
fstp qword [esp + eax*8 + 0x2c]
jne 0x681e5b
fld qword [0x71a450]
fdiv qword [ebx + 0x70]
fsub qword [0x71a450]
fmul qword [ebx + 0x80]
fstp qword [ebx + 0x88]
fld qword [ebx + 0x80]
fdiv qword [ebx + 0x78]
fstp qword [ebx + 0x80]
fld qword [ebx + 0x70]
fadd qword [0x71a450]
fstp qword [esp + 0x20]
fld qword [ebx + 0x80]
fstp qword [esp + 0x18]
fld qword [ebx + 0x80]
fld qword [esp + 0x20]
call fcn.006fb640
fsubr qword [0x71a450]
fld qword [ebx + 0x88]
fadd qword [0x71a450]
mov eax, dword [ebx + 0x66cc]
lea esi, [ebx + 0xe7c4]
fmulp st(1)
mov ecx, 0xc
lea edi, [esp + 0xc8]
cmp eax, 1
fdiv qword [esp + 0x20]
rep movsd dword es:[edi], dword [esi]
fld qword [esp + 0x18]
fmul qword [esp + 0x18]
fmul qword [ebx + 0x78]
fmul qword [0x71a428]
fld qword [0x71a450]
fsub qword [ebx + 0x80]
fmul qword [ebx + 0x88]
fsubp st(1)
faddp st(1)
fdivr qword [0x71a450]
fsub qword [0x71a450]
fstp qword [ebx + 0x90]
je 0x681f97
mov eax, dword [ebx + 0xc0]
test eax, eax
jne 0x681f97
mov eax, dword [ebx + 0xa8]
cmp eax, 1
jl 0x681f97
cmp eax, 5
jg 0x681f97
xor eax, eax
jmp 0x681f9c
mov eax, 1
mov ecx, dword [ebx + 0x6600]
or ecx, eax
mov dword [ebx + 0x6600], ecx
jne 0x6822f3
mov eax, dword [0x73f940]
push 1
push eax
call fcn.00450a92
push eax
push ebx
mov dword [ebx + 0x65dc], eax
call fcn.00667bd0
mov edi, dword [ebx + 0x65dc]
mov ecx, 0x14
mov esi, 0x73f940
add esp, 0x10
rep movsd dword es:[edi], dword [esi]
cmp dword [ebx + 0xa8], 5
jne 0x681ff4
mov eax, dword [ebx + 0x65dc]
mov ecx, dword [eax + 0x14]
mov dword [eax + 0x10], ecx
mov edx, dword [ebx + 0x65dc]
xor ecx, ecx
mov dword [edx], 0xfc
test ecx, ecx
je 0x68201d
xor edx, edx
cmp ecx, 1
setle dl
dec edx
and edx, 0xf3f3e6bd
add edx, 0x64657363
jmp 0x682022
mov edx, 0x74657874
mov eax, dword [ebx + 0x65dc]
mov esi, dword [eax]
shr esi, 2
mov dword [eax + esi*4], edx
mov edx, dword [ebx + 0x65dc]
lea eax, [ecx + ecx*2]
mov esi, dword [edx]
shl eax, 2
mov dword [esp + eax + 0x44], esi
mov eax, dword [esp + eax + 0x48]
add eax, 3
and al, 0xfc
add eax, esi
inc ecx
mov dword [edx], eax
mov eax, dword [esp + 0x3c]
cmp ecx, eax
jl 0x682002
mov edi, dword [ebx + 0x65dc]
mov ecx, 0x1f
add edi, 0x80
lea esi, [esp + 0x3c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0xa8]
mov edx, dword [esp + 0x50]
xor eax, eax
mov edi, dword [ecx*4 + 0x7c1a5c]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [ebx + 0x65dc]
shr edx, 2
not ecx
mov dword [eax + edx*4 + 8], ecx
mov ecx, dword [ebx + 0x65dc]
mov edx, dword [esp + 0x5c]
lea eax, [ecx + edx + 8]
mov ecx, dword [0x73f990]
mov dword [eax], ecx
mov edx, dword [0x73f994]
mov dword [eax + 4], edx
mov ecx, dword [0x73f998]
mov dword [eax + 8], ecx
mov eax, dword [ebx + 0xac]
cmp eax, 8
jne 0x6820e8
fld qword [0x72b5b8]
fdiv qword [ebx + 0x90]
fadd qword [0x71a428]
call fcn.0045077c
movsx esi, ax
shl esi, 0x10
jmp 0x6820ef
mov esi, dword [esp + 0xc4]
lea eax, [esp + 0x74]
mov edx, 3
mov ecx, dword [eax]
mov edi, dword [ebx + 0x65dc]
add edi, ecx
mov ecx, 0x63757276
add eax, 0xc
mov dword [edi], ecx
xor ecx, ecx
dec edx
mov dword [edi + 4], ecx
mov ecx, 1
mov dword [edi + 8], ecx
mov dword [edi + 0xc], esi
jne 0x6820f8
mov eax, dword [ebx + 0xa8]
lea edx, [esp + 0xf8]
push 3
push edx
mov ecx, dword [eax*4 + 0x7c1a48]
push ecx
call fcn.006722a0
add esp, 0xc
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x73f7d8
lea edi, [esp + 0x98]
lea esi, [esp + 0xf8]
mov dword [esp + 0x18], 3
fld qword [0x71a468]
mov eax, dword [esp + 0x10]
mov ecx, 3
fld qword [eax]
fmul qword [esi]
add esi, 8
add eax, 8
dec ecx
faddp st(1)
jne 0x682174
fmul qword [0x72b058]
fadd qword [0x71a428]
call fcn.0045077c
mov edx, dword [edi]
mov ecx, dword [esp + 0x14]
shr edx, 2
add edx, ecx
mov ecx, dword [ebx + 0x65dc]
add edi, 0xc
mov dword [ecx + edx*4 + 8], eax
mov eax, dword [esp + 0x18]
dec eax
mov dword [esp + 0x18], eax
jne 0x682165
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
add eax, 0x18
inc esi
cmp eax, 0x73f820
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], eax
jl 0x68214f
mov edx, dword [0x73f940]
xor esi, esi
shr edx, 2
test edx, edx
jle 0x68220e
mov edi, dword [sym.imp.WS2_32.dll_htonl]
mov eax, dword [ebx + 0x65dc]
mov ecx, dword [eax + esi*4]
push ecx
call edi
mov edx, dword [ebx + 0x65dc]
inc esi
mov dword [edx + esi*4 - 4], eax
mov eax, dword [0x73f940]
shr eax, 2
cmp esi, eax
jl 0x6821eb
mov ecx, dword [ebx + 0x65dc]
mov edx, dword [esp + 0x44]
mov esi, str.auto_generated_by_dcraw
lea edi, [ecx + edx + 8]
mov edx, dword [esp + 0x50]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xa8]
mov ecx, dword [ebx + 0x65dc]
mov edi, dword [eax*4 + 0x7c1a5c]
lea edx, [ecx + edx + 0xc]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x66cc]
xor ecx, ecx
lea esi, [esp + 0xc8]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], esi
xor edi, edi
test eax, eax
jle 0x6822dc
mov dword [esp + 0x18], 0
mov dword [esi], 0
mov eax, dword [esp + 0x18]
cmp eax, 3
jge 0x6822ce
mov edx, dword [ebx + 0xa8]
add ecx, eax
lea eax, [edi + eax*4]
mov edx, dword [edx*4 + 0x7c1a48]
lea ecx, [edx + ecx*8]
lea edx, [ebx + eax*4 + 0xe7c4]
mov eax, 3
sub eax, dword [esp + 0x18]
fld qword [ecx]
fmul dword [edx]
add ecx, 8
add edx, 0x10
dec eax
fadd dword [esi]
fstp dword [esi]
jne 0x6822b9
mov ecx, dword [esp + 0x14]
mov eax, dword [ebx + 0x66cc]
inc edi
add esi, 4
cmp edi, eax
jl 0x68227d
mov esi, dword [esp + 0x10]
add ecx, 3
add esi, 0x10
cmp ecx, 9
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ecx
jl 0x682277
mov eax, dword [ebx + 0xbc]
test eax, eax
je 0x68232d
mov eax, dword [ebx + 0x6600]
test eax, eax
mov eax, str.Building_histograms..._n
jne 0x682311
mov eax, str.Converting_to__s_colorspace..._n
mov ecx, dword [ebx + 0xa8]
mov edx, dword [ecx*4 + 0x7c1a5c]
push edx
push eax
push 0x779f40
call fcn.006fabb2
add esp, 0xc
mov ecx, 0x8000
xor eax, eax
lea edi, [ebx + 0xe7f4]
mov dword [esp + 0x10], eax
rep stosd dword es:[edi], eax
mov edi, dword [ebx + 0x66e0]
cmp word [ebx + 0x66b0], ax
mov dword [esp + 0x20], edi
jbe 0x6824d0
xor eax, eax
cmp word [ebx + 0x66b2], ax
mov dword [esp + 0x14], eax
jbe 0x6824b6
mov ecx, dword [ebx + 0x6600]
test ecx, ecx
jne 0x682430
fld dword [0x71a460]
mov edx, dword [ebx + 0x66cc]
fst dword [esp + 0x34]
fld dword [0x71a460]
test edx, edx
fst dword [esp + 0x30]
fld dword [0x71a460]
fst dword [esp + 0x2c]
jle 0x682402
mov ecx, edi
lea eax, [esp + 0xd8]
xor esi, esi
add eax, 4
mov si, word [ecx]
add ecx, 2
mov dword [esp + 0x18], esi
dec edx
fild dword [esp + 0x18]
fld st(0)
fmul dword [eax - 0x14]
faddp st(2)
fld st(0)
fmul dword [eax - 4]
faddp st(3)
fmul dword [eax + 0xc]
faddp st(3)
jne 0x6823a9
fstp dword [esp + 0x2c]
fstp dword [esp + 0x30]
fstp dword [esp + 0x34]
mov esi, edi
lea edi, [esp + 0x2c]
mov dword [esp + 0x18], 3
fld dword [edi]
call fcn.0045077c
cmp eax, 0xffff
jge 0x682411
test eax, eax
jge 0x68240a
xor eax, eax
jmp 0x682416
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x6823de
cmp eax, 0xffff
jl 0x682416
mov eax, 0xffff
mov word [esi], ax
mov eax, dword [esp + 0x18]
add edi, 4
add esi, 2
dec eax
mov dword [esp + 0x18], eax
jne 0x6823ec
mov edi, dword [esp + 0x20]
jmp 0x68245b
mov ecx, dword [ebx + 0xc0]
test ecx, ecx
je 0x68245b
mov ecx, dword [esp + 0x10]
mov edx, dword [ebx + 0x65ac]
and ecx, 7
and eax, 1
lea ecx, [eax + ecx*2]
shl ecx, 1
shr edx, cl
and edx, 3
mov ax, word [edi + edx*2]
mov word [edi], ax
mov eax, dword [ebx + 0x66cc]
xor esi, esi
test eax, eax
jle 0x682495
xor edx, edx
mov ecx, edi
xor eax, eax
mov ax, word [ecx]
add ecx, 2
shr eax, 3
add eax, edx
inc dword [ebx + eax*4 + 0xe7f4]
inc esi
add edx, 0x2000
lea eax, [ebx + eax*4 + 0xe7f4]
cmp esi, dword [ebx + 0x66cc]
jl 0x68246b
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov cx, word [ebx + 0x66b2]
inc eax
add edi, 8
cmp eax, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], edi
jl 0x68236a
mov eax, dword [esp + 0x10]
xor edx, edx
mov dx, word [ebx + 0x66b0]
inc eax
cmp eax, edx
mov dword [esp + 0x10], eax
jl 0x682357
cmp dword [ebx + 0x66cc], 4
jne 0x6824ed
mov eax, dword [ebx + 0xa8]
test eax, eax
je 0x6824ed
mov dword [ebx + 0x66cc], 3
mov eax, dword [ebx + 0xc0]
test eax, eax
je 0x68250b
mov eax, dword [ebx + 0x65ac]
test eax, eax
je 0x68250b
mov dword [ebx + 0x66cc], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret