Function at 0x10001cc0
Capabilities:
Hash data with md5
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100118b1
mov eax, dword fs:[0]
push eax
sub esp, 0x44c
mov eax, dword [0x10017040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
xor edi, edi
mov dword [ebp - 0x438], eax
mov dword [ebp - 0x440], esi
mov dword [ebp - 0x448], ecx
mov dword [ebp - 0x430], edi
cmp esi, edi
je 0x10001d56
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x10001d52
lea ebx, [eax + eax]
mov eax, ebx
call fcn.1000a3b0
mov edi, esp
test edi, edi
je 0x10001d52
push 0
push 0
push ebx
push edi
push 0xffffffffffffffff
push esi
push 0
push 3
mov byte [edi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, edi
jmp 0x10001d54
xor eax, eax
mov edi, eax
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
mov ecx, section..data
call eax
add eax, 0x10
mov dword [ebp - 0x44c], eax
mov dword [ebp - 4], 0
test edi, edi
je 0x10001da2
test edi, 0xffff0000
jne 0x10001da6
movzx esi, di
push esi
call fcn.10004110
add esp, 4
test eax, eax
je 0x10001dc5
push eax
mov eax, esi
lea edi, [ebp - 0x44c]
call fcn.100037b0
jmp 0x10001dc5
xor eax, eax
jmp 0x10001db9
mov eax, edi
lea edx, [eax + 1]
jmp 0x10001db0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10001db0
sub eax, edx
push edi
lea ebx, [ebp - 0x44c]
call fcn.10003ad0
mov dword [ebp - 4], 1
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
mov ecx, section..data
call eax
add eax, 0x10
mov dword [ebp - 0x454], eax
lea ecx, [ebp - 0x454]
mov byte [ebp - 4], 2
call fcn.10001bc0
test eax, eax
je 0x100025f7
lea ecx, [ebp - 0x434]
push ecx
mov ecx, dword [ebp - 0x438]
call fcn.100030b0
lea edx, [ebp - 0x450]
push edx
mov edi, eax
mov byte [ebp - 4], 3
call fcn.100032f0
push eax
lea eax, [ebp - 0x438]
push eax
mov ebx, 0x10015080
mov byte [ebp - 4], 4
call fcn.10003210
add esp, 0xc
mov byte [ebp - 4], 5
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ebx, [ebp - 0x454]
call fcn.100033f0
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x438]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10001e75
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x450]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10001e9b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x434]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10001ec1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
mov ecx, section..data
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x43c], esi
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x454]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
mov dword [ebp - 0x438], eax
cmp eax, esi
je 0x10001f3a
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x10001f2b
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x10001f2b
call fcn.10003640
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x10001f20
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x43c], ebx
jmp 0x10001f3a
mov edi, dword [ecx - 0xc]
push ecx
lea ebx, [ebp - 0x43c]
call fcn.10003530
push 0xa
push str.search.ini
lea ebx, [ebp - 0x43c]
call fcn.100033f0
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
mov ecx, section..data
call eax
add eax, 0x10
mov dword [ebp - 0x444], eax
mov ebx, 1
push ebx
push str.Search_Engine__d
lea edi, [ebp - 0x444]
mov byte [ebp - 4], 7
call fcn.10004050
mov ecx, dword [ebp - 0x43c]
mov eax, dword [ebp - 0x444]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
add esp, 8
push ecx
push 0x200
lea edx, [ebp - 0x410]
push edx
push 0
push str.UNIQUEID
push eax
call esi
test eax, eax
je 0x10001ff4
inc ebx
cmp ebx, 0x64
jge 0x1000266c
push ebx
push str.Search_Engine__d
lea edi, [ebp - 0x444]
call fcn.10004050
mov ecx, dword [ebp - 0x43c]
mov eax, dword [ebp - 0x444]
add esp, 8
push ecx
push 0x200
lea edx, [ebp - 0x410]
push edx
push 0
push str.UNIQUEID
push eax
call esi
test eax, eax
jne 0x10001faf
mov edi, dword [ebp - 0x43c]
mov ebx, dword [ebp - 0x444]
mov esi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push edi
push str.BEBBFFDF3C47064F82B65AE81B78EB02
push str.UNIQUEID
push ebx
call esi
mov ecx, dword [ebp - 0x448]
push edi
push ecx
push str.Name
push ebx
call esi
push edi
push 0x10014dc0
push 0x10014dc4
push ebx
call esi
mov edx, dword [ebp - 0x440]
push edi
push edx
push 0x10014c94
push ebx
call esi
push edi
push 0x10015084
push str.Query
push ebx
call esi
push edi
push 0x10014de4
push 0x10014de8
push ebx
call esi
push edi
push 0x10014dc0
push 0x10014df0
push ebx
call esi
push edi
push 0x10014dc0
push str.UseTLD
push ebx
call esi
push edi
push 0x10014dc0
push str.Has_endseparator
push ebx
call esi
push edi
push str.utf_8
push str.Encoding
push ebx
call esi
push edi
push 0x10014dc0
push str.Search_Type
push ebx
call esi
push edi
push 0x10014e6c
push str.Position
push ebx
call esi
push edi
push 0x10014dc0
push str.Nameid
push ebx
call esi
push edi
push 0x10014dc0
push str.Deleted
push ebx
call esi
push edi
push str.BEBBFFDF3C47064F82B65AE81B78EB02
push str.Default_Search
push str.Options
call esi
push edi
push str.BEBBFFDF3C47064F82B65AE81B78EB02
push str.Speed_Dial_Search
push str.Options
call esi
mov eax, dword [section..data]
mov edx, dword [eax + 0xc]
mov ecx, section..data
call edx
add eax, 0x10
mov dword [ebp - 0x440], eax
lea eax, [ebp - 0x454]
lea ecx, [ebp - 0x440]
mov byte [ebp - 4], 8
call fcn.10003160
push 0xe
push str.operaprefs.ini
lea ebx, [ebp - 0x440]
call fcn.100033f0
lea eax, [ebp - 0x44c]
lea ebx, [ebp - 0x438]
call fcn.10003020
push 0x10014830
mov eax, 0xa
mov byte [ebp - 4], 9
call fcn.10003870
push 0x69
call fcn.10005b57
mov edi, eax
add esp, 4
mov dword [ebp - 0x450], edi
mov byte [ebp - 4], 0xa
test edi, edi
je 0x100021c2
mov ebx, dword [ebp - 0x438]
mov eax, ebx
mov dword [ebp - 0x418], 0xf
mov dword [ebp - 0x41c], 0
mov byte [ebp - 0x42c], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10002195
sub eax, edx
push eax
push ebx
lea ecx, [ebp - 0x42c]
call fcn.100036b0
lea eax, [ebp - 0x42c]
mov ecx, edi
mov dword [ebp - 0x430], 1
call fcn.10005160
mov byte [ebp - 4], 9
test byte [ebp - 0x430], 1
je 0x100021ee
and dword [ebp - 0x430], 0xfffffffe
cmp dword [ebp - 0x418], 0x10
jb 0x100021ee
mov eax, dword [ebp - 0x42c]
push eax
call fcn.100056d8
add esp, 4
lea ecx, [ebp - 0x458]
push ecx
mov ecx, 0x10014f1c
call fcn.100030b0
mov byte [ebp - 4], 0xb
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
mov ecx, section..data
call eax
add eax, 0x10
mov dword [ebp - 0x448], eax
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x434], 0
lea ebx, [ebx]
mov ecx, dword [ebp - 0x434]
movzx edx, byte [ecx + 0x10018f98]
push edx
push str._02x
lea edi, [ebp - 0x448]
call fcn.10004050
mov eax, dword [ebp - 0x448]
mov ecx, dword [eax - 0xc]
add esp, 8
push ecx
push eax
lea ebx, [ebp - 0x458]
call fcn.100033f0
mov eax, dword [ebp - 0x434]
inc eax
mov dword [ebp - 0x434], eax
cmp eax, 0x10
jl 0x10002230
mov eax, dword [ebp - 0x440]
mov ecx, dword [ebp - 0x458]
push eax
push ecx
push str.Data2
push str.State
call esi
mov edi, dword [ebp - 0x44c]
mov ecx, dword [edi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [edi - 4], 0
lea ecx, [edi - 4]
jl 0x100022bf
cmp eax, dword [edi - 0x10]
jne 0x100022bf
lea ebx, [edi - 0x10]
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x100022f1
mov ecx, dword [edi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
jne 0x100022d8
call fcn.100039d0
mov eax, dword [edi - 0xc]
mov dword [ebx + 4], eax
mov eax, dword [edi - 0xc]
inc eax
push eax
push edi
push eax
lea ecx, [ebx + 0x10]
push ecx
call fcn.10005ae2
add esp, 0x10
add ebx, 0x10
mov dword [ebp - 0x450], ebx
push 0x1001483c
mov eax, 0xa
lea ebx, [ebp - 0x450]
mov byte [ebp - 4], 0xd
call fcn.10003870
push 0x69
call fcn.10005b57
mov edi, eax
add esp, 4
mov dword [ebp - 0x434], edi
xor ebx, ebx
mov byte [ebp - 4], 0xe
cmp edi, ebx
je 0x100023c8
mov esi, dword [ebp - 0x450]
mov eax, esi
mov dword [ebp - 0x418], 0xf
mov dword [ebp - 0x41c], ebx
mov byte [ebp - 0x42c], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x10002354
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0x42c]
call fcn.100036b0
or dword [ebp - 0x430], 2
mov byte [edi], bl
mov dword [edi + 0x44], ebx
mov dword [edi + 0x48], ebx
mov dword [edi + 0x4c], 0x67452301
mov dword [edi + 0x50], 0xefcdab89
mov dword [edi + 0x54], 0x98badcfe
mov dword [edi + 0x58], 0x10325476
cmp dword [ebp - 0x418], 0x10
mov eax, dword [ebp - 0x42c]
jae 0x100023aa
lea eax, [ebp - 0x42c]
mov edx, dword [ebp - 0x41c]
push edx
push eax
mov ebx, edi
call fcn.100051b0
mov esi, edi
call fcn.100052f0
mov esi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
xor ebx, ebx
mov byte [ebp - 4], 0xd
test byte [ebp - 0x430], 2
je 0x10002403
cmp dword [ebp - 0x418], 0x10
jb 0x100023ed
mov eax, dword [ebp - 0x42c]
push eax
call fcn.100056d8
add esp, 4
mov dword [ebp - 0x418], 0xf
mov dword [ebp - 0x41c], ebx
mov byte [ebp - 0x42c], bl
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
mov ecx, section..data
call eax
add eax, 0x10
mov dword [ebp - 0x430], eax
mov ecx, 0x10014f48
mov byte [ebp - 4], 0xf
test ecx, 0xffff0000
jne 0x1000244f
mov edx, ecx
movzx edi, dx
push edi
call fcn.10004110
add esp, 4
cmp eax, ebx
je 0x10002466
push eax
mov eax, edi
lea edi, [ebp - 0x430]
call fcn.10003930
jmp 0x10002466
push 0x10014f48
mov edi, 3
lea ebx, [ebp - 0x430]
call fcn.10003530
xor ebx, ebx
mov byte [ebp - 4], 0x10
mov dword [ebp - 0x434], ebx
mov eax, dword [ebp - 0x434]
movzx ecx, byte [eax + 0x10018f98]
push ecx
push str._02x
lea edi, [ebp - 0x448]
call fcn.10004050
mov edi, dword [ebp - 0x448]
mov eax, dword [edi - 0xc]
add esp, 8
push eax
push edi
lea ebx, [ebp - 0x430]
call fcn.100033f0
mov eax, dword [ebp - 0x434]
inc eax
mov dword [ebp - 0x434], eax
cmp eax, 0x10
jl 0x10002470
mov edx, dword [ebp - 0x440]
mov ebx, dword [ebp - 0x430]
push edx
push ebx
push str.Data4
push str.State
call esi
lea eax, [ebx - 0x10]
mov byte [ebp - 4], 0xd
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100024f3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x450]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10002519
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [ebp - 4], 0xb
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10002539
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x458]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1000255f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x438]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10002585
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x440]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100025ab
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x444]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100025d1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x43c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100025f7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x454]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1000261d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x44c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10002646
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
lea esp, [ebp - 0x468]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100056e3
mov esp, ebp
pop ebp
ret 0xc
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x444]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10002692
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x43c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100026b8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x438]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100026db
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x44c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10002704
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
or eax, 0xffffffff
jmp 0x10002648