Function at 0x1cf2b10
Capabilities:
Write file on windows

Disassembly:
push 0xffffffffffffffff
push 0x1d6f2a2
mov eax, dword fs:[0]
push eax
sub esp, 0x424
mov eax, dword [0x1dbb89c]
xor eax, esp
mov dword [esp + 0x420], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1dbb89c]
xor eax, esp
push eax
lea eax, [esp + 0x438]
mov dword fs:[0], eax
mov edi, dword [esp + 0x448]
mov ebx, dword [esp + 0x44c]
mov esi, dword [esp + 0x450]
push 0
push edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], esi
call fcn.01cf1ad0
mov ebp, eax
test ebp, ebp
jne 0x1cf2b9b
test esi, esi
je 0x1cf2ceb
mov ecx, dword [esp + 0x14]
push eax
push edi
call fcn.01cf2010
mov ebp, eax
test ebp, ebp
je 0x1cf2ceb
test ebx, ebx
je 0x1cf2c3b
push ebx
mov ecx, ebp
call fcn.01cf0cf0
mov esi, eax
test esi, esi
jne 0x1cf2bde
test byte [ebp + 0x14], 1
je 0x1cf2bde
mov ecx, ebp
call fcn.01d33a50
mov ecx, dword [esp + 0x14]
push 1
push edi
call fcn.01cf1ad0
mov ebp, eax
test ebp, ebp
je 0x1cf2ceb
push ebx
mov ecx, ebp
call fcn.01cf0cf0
mov esi, eax
test ebp, ebp
je 0x1cf2bfc
test esi, esi
jne 0x1cf2c04
cmp dword [esp + 0x20], esi
je 0x1cf2ce0
push esi
push esi
push ebx
mov ecx, ebp
call fcn.01cf1d40
mov esi, eax
test esi, esi
je 0x1cf2ce0
cmp dword [esp + 0x20], 0
je 0x1cf2c23
mov eax, dword [esp + 0x20]
push eax
mov ecx, esi
call fcn.01cefbf0
mov ecx, esi
call fcn.01d33a50
jmp 0x1cf2ce0
test ebp, ebp
je 0x1cf2c2f
push esi
mov ecx, ebp
call fcn.01cf14d0
mov ecx, esi
call fcn.01d33a50
jmp 0x1cf2ce0
test esi, esi
jne 0x1cf2c4e
mov ecx, dword [esp + 0x14]
push ebp
call fcn.01cf1770
jmp 0x1cf2ce0
mov ecx, ebp
call fcn.01cf15e0
cmp word [esi], 0
mov edi, esi
je 0x1cf2ce0
movzx eax, word [edi]
xor ebx, ebx
mov ecx, 0xa
mov esi, edi
test ax, ax
je 0x1cf2cb6
movzx eax, ax
cmp ax, 0xd
jne 0x1cf2ca5
cmp word [esi + 2], cx
jne 0x1cf2caa
mov ebx, 2
mov eax, esi
sub eax, edi
sar eax, 1
push eax
push edi
mov ecx, ebp
call fcn.01cf1dd0
mov ecx, eax
call fcn.01d33a50
test ebx, ebx
je 0x1cf2cc2
lea edi, [esi + ebx*2]
jmp 0x1cf2cda
cmp ax, cx
je 0x1cf2cbb
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x1cf2c75
or eax, 0xffffffff
jmp 0x1cf2c8c
mov ebx, 1
jmp 0x1cf2c86
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x1cf2cc7
sub eax, edx
sar eax, 1
lea edi, [edi + eax*2 + 2]
cmp word [edi], 0
jne 0x1cf2c61
test ebp, ebp
je 0x1cf2ceb
mov ecx, ebp
call fcn.01d33a50
mov esi, dword [esp + 0x14]
test byte [esi + 0x14], 4
jne 0x1cf362a
cmp dword [esi + 0x48], 0
jne 0x1cf2d14
cmp dword [esi + 0x44], 0
je 0x1cf2d14
mov ecx, esi
call fcn.01cefe80
test eax, eax
je 0x1cf362f
lea ecx, [esp + 0x1a4]
call fcn.01d26ef0
mov dword [esp + 0x440], 0
cmp dword [esi + 0x30], 0
je 0x1cf2d52
push 0
lea ecx, [esp + 0x1a8]
call fcn.01d26c20
push 0xfeff
push 1
lea ecx, [esp + 0x1ac]
call fcn.01d261c0
mov ecx, dword [esp + 0x14]
mov ebx, dword [ecx + 0x48]
xor ebp, ebp
lea ecx, [esp + 0x248]
xor edi, edi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x30], ebp
call fcn.01d26ef0
mov byte [esp + 0x440], 1
test ebx, ebx
je 0x1cf2fe1
jmp 0x1cf2d90
lea edx, [esp + 0x248]
push edx
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x20]
call fcn.01cefd30
test eax, eax
je 0x1cf2fe1
lea esi, [esp + 0x248]
call fcn.01cf02a0
push 0
mov ecx, esi
call fcn.01d262b0
cmp word [eax], 0x3b
je 0x1cf2fd5
push 0
mov ecx, esi
call fcn.01d262b0
cmp word [eax], 0x5b
jne 0x1cf2ed5
test edi, edi
jne 0x1cf3004
mov edx, dword [esp + 0x24c]
dec edx
xor esi, esi
test edx, edx
jle 0x1cf2e24
jmp 0x1cf2e00
lea edi, [esi + 1]
push edi
lea ecx, [esp + 0x24c]
call fcn.01d262b0
cmp word [eax], 0x5d
je 0x1cf2e24
mov eax, dword [esp + 0x24c]
mov esi, edi
dec eax
cmp esi, eax
jl 0x1cf2e00
push esi
push 1
lea ecx, [esp + 0x108]
push ecx
lea ecx, [esp + 0x254]
call fcn.01d27660
mov byte [esp + 0x440], 2
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x39c]
call fcn.01d272e0
mov byte [esp + 0x440], 4
lea ecx, [esp + 0x100]
call fcn.01d26680
lea esi, [esp + 0x390]
call fcn.01cf02a0
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x390]
push edx
push eax
call fcn.01d38ba2
mov esi, dword [esp + 0x34]
mov edi, eax
push 2
neg edi
sbb edi, edi
push 0x1d87880
push esi
inc edi
call fcn.01d3a6af
add esp, 0x14
test eax, eax
jne 0x1cf2eae
add esi, 4
mov dword [esp + 0x1c], esi
jmp 0x1cf2eb6
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ebp, ebx
mov dword [esp + 0x30], ebp
mov byte [esp + 0x440], 1
lea ecx, [esp + 0x390]
call fcn.01d26680
jmp 0x1cf2fd5
test edi, edi
je 0x1cf2fd5
mov esi, dword [esp + 0x2c]
push 2
push 0x1d87880
push esi
call fcn.01d3a6af
add esp, 0xc
test eax, eax
jne 0x1cf2efe
add esi, 4
mov dword [esp + 0x1c], esi
jmp 0x1cf2f06
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x18], 0
je 0x1cf2fd5
lea ecx, [esp + 0x2ec]
call fcn.01d26ef0
mov byte [esp + 0x440], 5
push 0
push 0x3d
lea ecx, [esp + 0x250]
call fcn.01d26300
mov ebp, eax
cmp ebp, 0xffffffff
je 0x1cf2fa0
push ebp
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x250]
call fcn.01c54180
mov esi, eax
mov byte [esp + 0x440], 6
lea ecx, [esp + 0x2ec]
cmp ecx, esi
je 0x1cf2f83
mov eax, dword [esi]
neg eax
sbb eax, eax
neg eax
dec eax
push eax
call fcn.01d26c20
push 0xffffffffffffffff
push 0
push esi
lea ecx, [esp + 0x2f8]
call fcn.01d27060
mov byte [esp + 0x440], 5
lea ecx, [esp + 0x5c]
call fcn.01d26680
lea esi, [esp + 0x2ec]
call fcn.01cf02a0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x2ec]
push edx
push eax
call fcn.01d38ba2
add esp, 8
test eax, eax
je 0x1cf311c
mov byte [esp + 0x440], 1
lea ecx, [esp + 0x2ec]
call fcn.01d26680
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x28]
test ebx, ebx
jne 0x1cf2d90
mov esi, dword [esp + 0x20]
test esi, esi
jne 0x1cf31d0
cmp dword [esp + 0x18], esi
jne 0x1cf2ffb
test edi, edi
jne 0x1cf31df
mov ecx, dword [esp + 0x14]
jmp 0x1cf35fa
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
test ebx, ebx
jne 0x1cf30b1
mov eax, dword [ecx + 0x48]
sub ebp, eax
sar ebp, 1
push ebp
push eax
lea ecx, [esp + 0x1ac]
call fcn.01d26f00
mov esi, dword [esp + 0x20]
test esi, esi
je 0x1cf309e
mov edx, dword [esp + 0x24]
push 0xffffffffffffffff
push 0x1d8f0f4
push 0xffffffffffffffff
push edx
push 0x5b
push 1
lea ecx, [esp + 0x1bc]
call fcn.01d261c0
mov ecx, eax
call fcn.01d26f00
mov ecx, eax
call fcn.01d26f00
cmp word [esi], bx
je 0x1cf309e
push 0xffffffffffffffff
push 0x1d87880
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0x1b4]
call fcn.01d26f00
mov ecx, eax
call fcn.01d26f00
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x1cf3084
sub eax, edx
sar eax, 1
cmp word [esi + eax*2 + 2], cx
lea esi, [esi + eax*2 + 2]
jne 0x1cf3062
mov eax, dword [esp + 0x1c]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x1ac]
jmp 0x1cf34c4
mov edi, dword [esp + 0x20]
test edi, edi
je 0x1cf35fa
mov eax, dword [ecx + 0x48]
mov esi, dword [esp + 0x1c]
mov edx, esi
sub edx, eax
sar edx, 1
push edx
push eax
lea ecx, [esp + 0x1ac]
call fcn.01d26f00
push 0xffffffffffffffff
push 0x1d87880
push 0xffffffffffffffff
push edi
push 0xffffffffffffffff
push 0x1d8f0c4
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x1c4]
call fcn.01d26f00
mov ecx, eax
call fcn.01d26f00
mov ecx, eax
call fcn.01d26f00
mov ecx, eax
call fcn.01d26f00
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0x1ac]
jmp 0x1cf34c4
mov esi, dword [esp + 0x20]
test esi, esi
jne 0x1cf3146
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x48]
sub ebx, eax
sar ebx, 1
push ebx
push eax
lea ecx, [esp + 0x1ac]
call fcn.01d26f00
mov ecx, dword [esp + 0x1c]
push 0xffffffffffffffff
push ecx
jmp 0x1cf31ab
cmp ebp, 0xffffffff
je 0x1cf3172
push 0x3d
push ebx
call fcn.01d38393
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 0x48]
add eax, 2
sub eax, ecx
add esp, 8
sar eax, 1
push eax
push ecx
lea ecx, [esp + 0x1ac]
call fcn.01d26f00
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0x1ac]
call fcn.01d26f00
mov esi, dword [esp + 0x2c]
cmp ebx, esi
jae 0x1cf31a8
lea esp, [esp]
movzx eax, word [esi - 2]
push eax
call fcn.01d394ee
add esp, 4
test eax, eax
je 0x1cf31a8
add esi, 0xfffffffe
cmp ebx, esi
jb 0x1cf3190
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0x1ac]
call fcn.01d26f00
mov byte [esp + 0x440], 1
lea ecx, [esp + 0x2ec]
call fcn.01d26680
jmp 0x1cf34c9
cmp dword [esp + 0x18], 0
jne 0x1cf3282
test edi, edi
je 0x1cf31ed
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x48]
sub ebp, eax
sar ebp, 1
push ebp
jmp 0x1cf31f6
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x48]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x1ac]
call fcn.01d26f00
test esi, esi
je 0x1cf34c9
mov ecx, dword [esp + 0x24]
push 0xffffffffffffffff
push 0x1d8f0f4
push 0xffffffffffffffff
push ecx
push 0x5b
push 1
lea ecx, [esp + 0x1bc]
call fcn.01d261c0
mov ecx, eax
call fcn.01d26f00
mov ecx, eax
call fcn.01d26f00
cmp word [esi], 0
je 0x1cf34c9
push 0xffffffffffffffff
push 0x1d87880
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0x1b4]
call fcn.01d26f00
mov ecx, eax
call fcn.01d26f00
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x1cf3263
sub eax, edx
sar eax, 1
cmp word [esi + eax*2 + 2], cx
lea esi, [esi + eax*2 + 2]
jne 0x1cf3241
jmp 0x1cf34c9
test edi, edi
je 0x1cf3358
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0x48]
mov ebx, dword [esp + 0x1c]
mov edx, ebx
sub edx, eax
sar edx, 1
push edx
push eax
lea ecx, [esp + 0x1ac]
call fcn.01d26f00
mov eax, ebx
sub eax, dword [edi + 0x48]
lea ecx, [esp + 0x1a4]
sar eax, 1
dec eax
push eax
call fcn.01d262b0
cmp word [eax], 0xa
jne 0x1cf3302
mov ecx, ebx
sub ecx, dword [edi + 0x48]
sar ecx, 1
sub ecx, 2
push ecx
lea ecx, [esp + 0x1a8]
call fcn.01d262b0
cmp word [eax], 0xd
jne 0x1cf3302
mov edx, dword [esp + 0x18]
push 0xffffffffffffffff
push 0x1d87880
push 0xffffffffffffffff
push esi
push 0xffffffffffffffff
push 0x1d8f0c4
push 0xffffffffffffffff
push edx
lea ecx, [esp + 0x1c4]
jmp 0x1cf332f
mov eax, dword [esp + 0x18]
push 0xffffffffffffffff
push 0x1d87880
push 0xffffffffffffffff
push esi
push 0xffffffffffffffff
push 0x1d8f0c4
push 0xffffffffffffffff
push eax
push 0xffffffffffffffff
push 0x1d87880
lea ecx, [esp + 0x1cc]
call fcn.01d26f00
mov ecx, eax
call fcn.01d26f00
mov ecx, eax
call fcn.01d26f00
mov ecx, eax
call fcn.01d26f00
mov ecx, eax
call fcn.01d26f00
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x1ac]
jmp 0x1cf34c4
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x48]
test eax, eax
je 0x1cf3464
cmp word [eax], 0
je 0x1cf3464
cmp dword [edx + 0x30], 0
mov ecx, dword [edx + 0x44]
je 0x1cf337c
shr ecx, 1
push ecx
push eax
lea ecx, [esp + 0x1ac]
call fcn.01d26f00
mov eax, dword [esp + 0x1a8]
cmp eax, 2
jl 0x1cf3410
dec eax
push eax
lea ecx, [esp + 0x1a8]
call fcn.01d262b0
cmp word [eax], 0xa
jne 0x1cf3410
mov ecx, dword [esp + 0x1a8]
add ecx, 0xfffffffe
push ecx
lea ecx, [esp + 0x1a8]
call fcn.01d262b0
cmp word [eax], 0xd
jne 0x1cf3410
mov edx, dword [esp + 0x24]
push 0xffffffffffffffff
push 0x1d8f0f4
push 0xffffffffffffffff
push edx
push 0x5b
push 1
lea ecx, [esp + 0x1bc]
call fcn.01d261c0
mov ecx, eax
call fcn.01d26f00
mov ecx, eax
call fcn.01d26f00
mov eax, dword [esp + 0x18]
push 0xffffffffffffffff
push 0x1d87880
push 0xffffffffffffffff
push esi
push 0xffffffffffffffff
push 0x1d8f0c4
push 0xffffffffffffffff
push eax
jmp 0x1cf34a8
mov ecx, dword [esp + 0x24]
push 0xffffffffffffffff
push 0x1d8f0f4
push 0xffffffffffffffff
push ecx
push 0x5b
push 1
push 0xffffffffffffffff
push 0x1d87880
lea ecx, [esp + 0x1c4]
call fcn.01d26f00
mov ecx, eax
call fcn.01d261c0
mov ecx, eax
call fcn.01d26f00
mov ecx, eax
call fcn.01d26f00
mov edx, dword [esp + 0x18]
push 0xffffffffffffffff
push 0x1d87880
push 0xffffffffffffffff
push esi
push 0xffffffffffffffff
push 0x1d8f0c4
push 0xffffffffffffffff
push edx
jmp 0x1cf34a8
mov eax, dword [esp + 0x24]
push 0xffffffffffffffff
push 0x1d8f0f4
push 0xffffffffffffffff
push eax
push 0x5b
push 1
lea ecx, [esp + 0x1bc]
call fcn.01d261c0
mov ecx, eax
call fcn.01d26f00
mov ecx, eax
call fcn.01d26f00
mov ecx, dword [esp + 0x18]
push 0xffffffffffffffff
push 0x1d87880
push 0xffffffffffffffff
push esi
push 0xffffffffffffffff
push 0x1d8f0c4
push 0xffffffffffffffff
push ecx
lea ecx, [esp + 0x1c4]
call fcn.01d26f00
mov ecx, eax
call fcn.01d26f00
mov ecx, eax
call fcn.01d26f00
mov ecx, eax
call fcn.01d26f00
mov edi, dword [esp + 0x14]
cmp dword [edi + 0x30], 0
je 0x1cf34e5
mov esi, dword [esp + 0x1a8]
mov ebx, dword [esp + 0x1a4]
add esi, esi
jmp 0x1cf34fa
lea ecx, [esp + 0x1a4]
call fcn.01d266a0
mov esi, dword [esp + 0x1a8]
mov ebx, eax
mov edx, dword [edi + 0x34]
push 0
push 0
push edx
call fcn.01c7ac40
mov ecx, dword [edi + 0x34]
add esp, 0xc
push 0
lea eax, [esp + 0x38]
push eax
push esi
push ebx
push ecx
call sub.kernel32.dll_WriteFile
test eax, eax
je 0x1cf35e7
cmp dword [esp + 0x34], esi
jne 0x1cf35e7
mov edx, dword [edi + 0x34]
push edx
call dword [0x1da3d24]
mov ecx, dword [edi + 4]
lea eax, [esp + 0x38]
push eax
push 0
push ecx
call fcn.01cae4e0
add esp, 0xc
test eax, eax
je 0x1cf356b
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov dword [edi + 0x38], edx
mov edx, dword [esp + 0x58]
mov dword [edi + 0x3c], eax
mov dword [edi + 0x40], ecx
mov dword [edi + 0x44], edx
mov eax, dword [edi + 0x48]
test eax, eax
je 0x1cf357b
push eax
call fcn.01c60200
add esp, 4
xor ecx, ecx
lea edx, [ecx + 2]
cmp dword [edi + 0x30], ecx
je 0x1cf35b7
mov eax, dword [esp + 0x1a8]
mov esi, eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.01c60210
mov ecx, dword [esp + 0x1a8]
add ecx, 2
push ecx
push esi
push eax
mov dword [edi + 0x48], eax
call fcn.01d3a41e
add esp, 0x10
jmp 0x1cf35f8
mov esi, dword [esp + 0x1a8]
inc esi
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.01c60210
mov ecx, dword [esp + 0x1a8]
push ecx
push esi
push eax
mov dword [edi + 0x48], eax
call fcn.01d3a41e
add esp, 0x10
jmp 0x1cf35f8
mov edx, dword [edi + 4]
push edx
push str._Error_writing_to_.ini_file__ls_n
call fcn.01c605b0
add esp, 8
mov ecx, edi
call fcn.01cefe60
mov byte [esp + 0x440], 0
lea ecx, [esp + 0x248]
call fcn.01d26680
mov dword [esp + 0x440], 0xffffffff
lea ecx, [esp + 0x1a4]
call fcn.01d26680
mov eax, 1
mov ecx, dword [esp + 0x438]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x420]
xor ecx, esp
call fcn.01d389aa
add esp, 0x430
ret 0xc