Function at 0x8d4390
Capabilities:
Write file on windows

Disassembly:
push 0xffffffffffffffff
push 0x9509c2
mov eax, dword fs:[0]
push eax
sub esp, 0x424
mov eax, dword [0x99986c]
xor eax, esp
mov dword [esp + 0x420], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x99986c]
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.008d3350
mov ebp, eax
test ebp, ebp
jne 0x8d441b
test esi, esi
je 0x8d456b
mov ecx, dword [esp + 0x14]
push eax
push edi
call fcn.008d3890
mov ebp, eax
test ebp, ebp
je 0x8d456b
test ebx, ebx
je 0x8d44bb
push ebx
mov ecx, ebp
call fcn.008d2530
mov esi, eax
test esi, esi
jne 0x8d445e
test byte [ebp + 0x14], 1
je 0x8d445e
mov ecx, ebp
call fcn.008d0ef0
mov ecx, dword [esp + 0x14]
push 1
push edi
call fcn.008d3350
mov ebp, eax
test ebp, ebp
je 0x8d456b
push ebx
mov ecx, ebp
call fcn.008d2530
mov esi, eax
test ebp, ebp
je 0x8d447c
test esi, esi
jne 0x8d4484
cmp dword [esp + 0x20], esi
je 0x8d4560
push esi
push esi
push ebx
mov ecx, ebp
call fcn.008d35c0
mov esi, eax
test esi, esi
je 0x8d4560
cmp dword [esp + 0x20], 0
je 0x8d44a3
mov eax, dword [esp + 0x20]
push eax
mov ecx, esi
call fcn.008d13b0
mov ecx, esi
call fcn.008d0ef0
jmp 0x8d4560
test ebp, ebp
je 0x8d44af
push esi
mov ecx, ebp
call fcn.008d2d50
mov ecx, esi
call fcn.008d0ef0
jmp 0x8d4560
test esi, esi
jne 0x8d44ce
mov ecx, dword [esp + 0x14]
push ebp
call fcn.008d2ff0
jmp 0x8d4560
mov ecx, ebp
call fcn.008d2e60
cmp word [esi], 0
mov edi, esi
je 0x8d4560
movzx eax, word [edi]
xor ebx, ebx
mov ecx, 0xa
mov esi, edi
test ax, ax
je 0x8d4536
movzx eax, ax
cmp ax, 0xd
jne 0x8d4525
cmp word [esi + 2], cx
jne 0x8d452a
mov ebx, 2
mov eax, esi
sub eax, edi
sar eax, 1
push eax
push edi
mov ecx, ebp
call fcn.008d3650
mov ecx, eax
call fcn.008d0ef0
test ebx, ebx
je 0x8d4542
lea edi, [esi + ebx*2]
jmp 0x8d455a
cmp ax, cx
je 0x8d453b
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x8d44f5
or eax, 0xffffffff
jmp 0x8d450c
mov ebx, 1
jmp 0x8d4506
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x8d4547
sub eax, edx
sar eax, 1
lea edi, [edi + eax*2 + 2]
cmp word [edi], 0
jne 0x8d44e1
test ebp, ebp
je 0x8d456b
mov ecx, ebp
call fcn.008d0ef0
mov esi, dword [esp + 0x14]
test byte [esi + 0x14], 4
jne 0x8d4eaa
cmp dword [esi + 0x48], 0
jne 0x8d4594
cmp dword [esi + 0x44], 0
je 0x8d4594
mov ecx, esi
call fcn.008d16e0
test eax, eax
je 0x8d4eaf
lea ecx, [esp + 0x1a4]
call fcn.0090a020
mov dword [esp + 0x440], 0
cmp dword [esi + 0x30], 0
je 0x8d45d2
push 0
lea ecx, [esp + 0x1a8]
call fcn.00909e10
push 0xfeff
push 1
lea ecx, [esp + 0x1ac]
call fcn.00909400
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.0090a020
mov byte [esp + 0x440], 1
test ebx, ebx
je 0x8d4861
jmp 0x8d4610
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.008d1590
test eax, eax
je 0x8d4861
lea esi, [esp + 0x248]
call fcn.008d1b00
push 0
mov ecx, esi
call fcn.009094f0
cmp word [eax], 0x3b
je 0x8d4855
push 0
mov ecx, esi
call fcn.009094f0
cmp word [eax], 0x5b
jne 0x8d4755
test edi, edi
jne 0x8d4884
mov edx, dword [esp + 0x24c]
dec edx
xor esi, esi
test edx, edx
jle 0x8d46a4
jmp 0x8d4680
lea edi, [esi + 1]
push edi
lea ecx, [esp + 0x24c]
call fcn.009094f0
cmp word [eax], 0x5d
je 0x8d46a4
mov eax, dword [esp + 0x24c]
mov esi, edi
dec eax
cmp esi, eax
jl 0x8d4680
push esi
push 1
lea ecx, [esp + 0x108]
push ecx
lea ecx, [esp + 0x254]
call fcn.0090a780
mov byte [esp + 0x440], 2
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x39c]
call fcn.0090a400
mov byte [esp + 0x440], 4
lea ecx, [esp + 0x100]
call fcn.009098c0
lea esi, [esp + 0x390]
call fcn.008d1b00
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x390]
push edx
push eax
call fcn.0091b432
mov esi, dword [esp + 0x34]
mov edi, eax
push 2
neg edi
sbb edi, edi
push 0x967edc
push esi
inc edi
call fcn.0091d384
add esp, 0x14
test eax, eax
jne 0x8d472e
add esi, 4
mov dword [esp + 0x1c], esi
jmp 0x8d4736
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.009098c0
jmp 0x8d4855
test edi, edi
je 0x8d4855
mov esi, dword [esp + 0x2c]
push 2
push 0x967edc
push esi
call fcn.0091d384
add esp, 0xc
test eax, eax
jne 0x8d477e
add esi, 4
mov dword [esp + 0x1c], esi
jmp 0x8d4786
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x18], 0
je 0x8d4855
lea ecx, [esp + 0x2ec]
call fcn.0090a020
mov byte [esp + 0x440], 5
push 0
push 0x3d
lea ecx, [esp + 0x250]
call fcn.00909540
mov ebp, eax
cmp ebp, 0xffffffff
je 0x8d4820
push ebp
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x250]
call fcn.00841250
mov esi, eax
mov byte [esp + 0x440], 6
lea ecx, [esp + 0x2ec]
cmp ecx, esi
je 0x8d4803
mov eax, dword [esi]
neg eax
sbb eax, eax
neg eax
dec eax
push eax
call fcn.00909e10
push 0xffffffffffffffff
push 0
push esi
lea ecx, [esp + 0x2f8]
call fcn.0090a180
mov byte [esp + 0x440], 5
lea ecx, [esp + 0x5c]
call fcn.009098c0
lea esi, [esp + 0x2ec]
call fcn.008d1b00
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x2ec]
push edx
push eax
call fcn.0091b432
add esp, 8
test eax, eax
je 0x8d499c
mov byte [esp + 0x440], 1
lea ecx, [esp + 0x2ec]
call fcn.009098c0
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x28]
test ebx, ebx
jne 0x8d4610
mov esi, dword [esp + 0x20]
test esi, esi
jne 0x8d4a50
cmp dword [esp + 0x18], esi
jne 0x8d487b
test edi, edi
jne 0x8d4a5f
mov ecx, dword [esp + 0x14]
jmp 0x8d4e7a
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
test ebx, ebx
jne 0x8d4931
mov eax, dword [ecx + 0x48]
sub ebp, eax
sar ebp, 1
push ebp
push eax
lea ecx, [esp + 0x1ac]
call fcn.0090a030
mov esi, dword [esp + 0x20]
test esi, esi
je 0x8d491e
mov edx, dword [esp + 0x24]
push 0xffffffffffffffff
push 0x96e304
push 0xffffffffffffffff
push edx
push 0x5b
push 1
lea ecx, [esp + 0x1bc]
call fcn.00909400
mov ecx, eax
call fcn.0090a030
mov ecx, eax
call fcn.0090a030
cmp word [esi], bx
je 0x8d491e
push 0xffffffffffffffff
push 0x967edc
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0x1b4]
call fcn.0090a030
mov ecx, eax
call fcn.0090a030
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x8d4904
sub eax, edx
sar eax, 1
cmp word [esi + eax*2 + 2], cx
lea esi, [esi + eax*2 + 2]
jne 0x8d48e2
mov eax, dword [esp + 0x1c]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x1ac]
jmp 0x8d4d44
mov edi, dword [esp + 0x20]
test edi, edi
je 0x8d4e7a
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.0090a030
push 0xffffffffffffffff
push 0x967edc
push 0xffffffffffffffff
push edi
push 0xffffffffffffffff
push 0x96e2d4
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x1c4]
call fcn.0090a030
mov ecx, eax
call fcn.0090a030
mov ecx, eax
call fcn.0090a030
mov ecx, eax
call fcn.0090a030
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0x1ac]
jmp 0x8d4d44
mov esi, dword [esp + 0x20]
test esi, esi
jne 0x8d49c6
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.0090a030
mov ecx, dword [esp + 0x1c]
push 0xffffffffffffffff
push ecx
jmp 0x8d4a2b
cmp ebp, 0xffffffff
je 0x8d49f2
push 0x3d
push ebx
call fcn.0091aa93
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.0090a030
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0x1ac]
call fcn.0090a030
mov esi, dword [esp + 0x2c]
cmp ebx, esi
jae 0x8d4a28
lea esp, [esp]
movzx eax, word [esi - 2]
push eax
call fcn.0091c06e
add esp, 4
test eax, eax
je 0x8d4a28
add esi, 0xfffffffe
cmp ebx, esi
jb 0x8d4a10
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0x1ac]
call fcn.0090a030
mov byte [esp + 0x440], 1
lea ecx, [esp + 0x2ec]
call fcn.009098c0
jmp 0x8d4d49
cmp dword [esp + 0x18], 0
jne 0x8d4b02
test edi, edi
je 0x8d4a6d
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x48]
sub ebp, eax
sar ebp, 1
push ebp
jmp 0x8d4a76
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x48]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x1ac]
call fcn.0090a030
test esi, esi
je 0x8d4d49
mov ecx, dword [esp + 0x24]
push 0xffffffffffffffff
push 0x96e304
push 0xffffffffffffffff
push ecx
push 0x5b
push 1
lea ecx, [esp + 0x1bc]
call fcn.00909400
mov ecx, eax
call fcn.0090a030
mov ecx, eax
call fcn.0090a030
cmp word [esi], 0
je 0x8d4d49
push 0xffffffffffffffff
push 0x967edc
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0x1b4]
call fcn.0090a030
mov ecx, eax
call fcn.0090a030
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x8d4ae3
sub eax, edx
sar eax, 1
cmp word [esi + eax*2 + 2], cx
lea esi, [esi + eax*2 + 2]
jne 0x8d4ac1
jmp 0x8d4d49
test edi, edi
je 0x8d4bd8
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.0090a030
mov eax, ebx
sub eax, dword [edi + 0x48]
lea ecx, [esp + 0x1a4]
sar eax, 1
dec eax
push eax
call fcn.009094f0
cmp word [eax], 0xa
jne 0x8d4b82
mov ecx, ebx
sub ecx, dword [edi + 0x48]
sar ecx, 1
sub ecx, 2
push ecx
lea ecx, [esp + 0x1a8]
call fcn.009094f0
cmp word [eax], 0xd
jne 0x8d4b82
mov edx, dword [esp + 0x18]
push 0xffffffffffffffff
push 0x967edc
push 0xffffffffffffffff
push esi
push 0xffffffffffffffff
push 0x96e2d4
push 0xffffffffffffffff
push edx
lea ecx, [esp + 0x1c4]
jmp 0x8d4baf
mov eax, dword [esp + 0x18]
push 0xffffffffffffffff
push 0x967edc
push 0xffffffffffffffff
push esi
push 0xffffffffffffffff
push 0x96e2d4
push 0xffffffffffffffff
push eax
push 0xffffffffffffffff
push 0x967edc
lea ecx, [esp + 0x1cc]
call fcn.0090a030
mov ecx, eax
call fcn.0090a030
mov ecx, eax
call fcn.0090a030
mov ecx, eax
call fcn.0090a030
mov ecx, eax
call fcn.0090a030
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x1ac]
jmp 0x8d4d44
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x48]
test eax, eax
je 0x8d4ce4
cmp word [eax], 0
je 0x8d4ce4
cmp dword [edx + 0x30], 0
mov ecx, dword [edx + 0x44]
je 0x8d4bfc
shr ecx, 1
push ecx
push eax
lea ecx, [esp + 0x1ac]
call fcn.0090a030
mov eax, dword [esp + 0x1a8]
cmp eax, 2
jl 0x8d4c90
dec eax
push eax
lea ecx, [esp + 0x1a8]
call fcn.009094f0
cmp word [eax], 0xa
jne 0x8d4c90
mov ecx, dword [esp + 0x1a8]
add ecx, 0xfffffffe
push ecx
lea ecx, [esp + 0x1a8]
call fcn.009094f0
cmp word [eax], 0xd
jne 0x8d4c90
mov edx, dword [esp + 0x24]
push 0xffffffffffffffff
push 0x96e304
push 0xffffffffffffffff
push edx
push 0x5b
push 1
lea ecx, [esp + 0x1bc]
call fcn.00909400
mov ecx, eax
call fcn.0090a030
mov ecx, eax
call fcn.0090a030
mov eax, dword [esp + 0x18]
push 0xffffffffffffffff
push 0x967edc
push 0xffffffffffffffff
push esi
push 0xffffffffffffffff
push 0x96e2d4
push 0xffffffffffffffff
push eax
jmp 0x8d4d28
mov ecx, dword [esp + 0x24]
push 0xffffffffffffffff
push 0x96e304
push 0xffffffffffffffff
push ecx
push 0x5b
push 1
push 0xffffffffffffffff
push 0x967edc
lea ecx, [esp + 0x1c4]
call fcn.0090a030
mov ecx, eax
call fcn.00909400
mov ecx, eax
call fcn.0090a030
mov ecx, eax
call fcn.0090a030
mov edx, dword [esp + 0x18]
push 0xffffffffffffffff
push 0x967edc
push 0xffffffffffffffff
push esi
push 0xffffffffffffffff
push 0x96e2d4
push 0xffffffffffffffff
push edx
jmp 0x8d4d28
mov eax, dword [esp + 0x24]
push 0xffffffffffffffff
push 0x96e304
push 0xffffffffffffffff
push eax
push 0x5b
push 1
lea ecx, [esp + 0x1bc]
call fcn.00909400
mov ecx, eax
call fcn.0090a030
mov ecx, eax
call fcn.0090a030
mov ecx, dword [esp + 0x18]
push 0xffffffffffffffff
push 0x967edc
push 0xffffffffffffffff
push esi
push 0xffffffffffffffff
push 0x96e2d4
push 0xffffffffffffffff
push ecx
lea ecx, [esp + 0x1c4]
call fcn.0090a030
mov ecx, eax
call fcn.0090a030
mov ecx, eax
call fcn.0090a030
mov ecx, eax
call fcn.0090a030
mov edi, dword [esp + 0x14]
cmp dword [edi + 0x30], 0
je 0x8d4d65
mov esi, dword [esp + 0x1a8]
mov ebx, dword [esp + 0x1a4]
add esi, esi
jmp 0x8d4d7a
lea ecx, [esp + 0x1a4]
call fcn.009098e0
mov esi, dword [esp + 0x1a8]
mov ebx, eax
mov edx, dword [edi + 0x34]
push 0
push 0
push edx
call fcn.008673f0
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 0x8d4e67
cmp dword [esp + 0x34], esi
jne 0x8d4e67
mov edx, dword [edi + 0x34]
push edx
call dword [0x9824ac]
mov ecx, dword [edi + 4]
lea eax, [esp + 0x38]
push eax
push 0
push ecx
call fcn.00897ef0
add esp, 0xc
test eax, eax
je 0x8d4deb
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 0x8d4dfb
push eax
call fcn.0084dd20
add esp, 4
xor ecx, ecx
lea edx, [ecx + 2]
cmp dword [edi + 0x30], ecx
je 0x8d4e37
mov eax, dword [esp + 0x1a8]
mov esi, eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0084dd30
mov ecx, dword [esp + 0x1a8]
add ecx, 2
push ecx
push esi
push eax
mov dword [edi + 0x48], eax
call fcn.0091cabe
add esp, 0x10
jmp 0x8d4e78
mov esi, dword [esp + 0x1a8]
inc esi
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0084dd30
mov ecx, dword [esp + 0x1a8]
push ecx
push esi
push eax
mov dword [edi + 0x48], eax
call fcn.0091cabe
add esp, 0x10
jmp 0x8d4e78
mov edx, dword [edi + 4]
push edx
push str._Error_writing_to_.ini_file__ls_n
call fcn.0084e0d0
add esp, 8
mov ecx, edi
call fcn.008d16c0
mov byte [esp + 0x440], 0
lea ecx, [esp + 0x248]
call fcn.009098c0
mov dword [esp + 0x440], 0xffffffff
lea ecx, [esp + 0x1a4]
call fcn.009098c0
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.0091b0aa
add esp, 0x430
ret 0xc