Function at 0x1004f630
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100aeba4
mov eax, dword fs:[0]
push eax
sub esp, 0x39c
mov eax, dword [0x100dbc1c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
xor esi, esi
lea eax, [ebp - 0x21c]
push 0x208
xor ebx, ebx
mov dword [ebp - 0x24c], esi
mov dword [ebp - 0x248], ebx
push esi
push eax
mov dword [ebp - 0x26c], esi
mov dword [ebp - 4], esi
call fcn.100837f0
add esp, 0xc
lea eax, [ebp - 0x21c]
push dword [edi + 4]
push 0x104
push eax
push 0x100c71bc
push str.msg_t
push str.CouponHelper
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x264]
mov dword [ebp - 0x248], esi
push eax
lea eax, [ebp - 0x258]
mov dword [ebp - 0x250], esi
push eax
lea eax, [ebp - 0x254]
mov dword [ebp - 0x254], esi
push eax
lea eax, [ebp - 0x250]
mov dword [ebp - 0x258], esi
push eax
lea eax, [ebp - 0x248]
mov dword [ebp - 0x264], esi
push eax
lea eax, [ebp - 0x21c]
push str._04d__02d__02d__02d:_02d
push eax
call fcn.100506d0
add esp, 0x1c
cmp eax, 5
jne 0x1004f9c5
mov edi, dword [ebp - 0x248]
mov eax, 0x76c
cmp edi, eax
cmovl edi, eax
mov eax, dword [ebp - 0x250]
mov dword [ebp - 0x248], edi
cmp eax, 1
jl 0x1004f739
cmp eax, 0xc
jle 0x1004f744
mov eax, 1
mov dword [ebp - 0x250], eax
mov ecx, dword [ebp - 0x254]
cmp ecx, 1
jl 0x1004f754
cmp ecx, 0x1f
jle 0x1004f75f
mov ecx, 1
mov dword [ebp - 0x254], ecx
mov edx, dword [ebp - 0x258]
test edx, edx
js 0x1004f76e
cmp edx, 0x17
jle 0x1004f776
xor edx, edx
mov dword [ebp - 0x258], edx
mov esi, dword [ebp - 0x264]
test esi, esi
js 0x1004f785
cmp esi, 0x3b
jle 0x1004f78d
xor esi, esi
mov dword [ebp - 0x264], esi
cmp edi, 0x76c
jl 0x1004fb3a
dec eax
mov dword [ebp - 0x25c], eax
cmp eax, 0xb
ja 0x1004fb44
lea eax, [ecx - 1]
cmp eax, 0x1e
ja 0x1004fb4e
cmp edx, 0x17
ja 0x1004fb58
cmp esi, 0x3b
ja 0x1004fb62
mov eax, dword [ebp - 0x25c]
mov dword [ebp - 0x230], eax
lea eax, [edi - 0x76c]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x240]
push eax
mov dword [ebp - 0x240], 0
mov dword [ebp - 0x23c], esi
mov dword [ebp - 0x238], edx
mov dword [ebp - 0x234], ecx
mov dword [ebp - 0x220], 0xffffffff
call fcn.10095a13
mov edi, edx
mov esi, eax
and eax, edi
add esp, 4
cmp eax, 0xffffffff
je 0x1004fb6c
jmp 0x1004f9a0
push 0
call fcn.1008a37d
add esp, 4
sub eax, esi
sbb edx, edi
test edx, edx
jg 0x1004f9c5
jl 0x1004f9bb
cmp eax, 0x258
jae 0x1004f9c5
mov dword [ebp - 0x24c], 1
lea eax, [ebp - 0x260]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.1003b6a0
add esp, 4
or ebx, 4
mov dword [ebp - 4], 6
cmp dword [eax], 0
mov dword [ebp - 0x248], ebx
je 0x1004fa23
lea eax, [ebp - 0x270]
push eax
call fcn.1003b6a0
add esp, 4
mov ecx, dword [eax]
or ebx, 8
mov dword [ebp - 4], 7
mov dword [ebp - 0x248], ebx
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov byte [ebp - 0x241], 1
test al, al
jne 0x1004fa2a
mov byte [ebp - 0x241], 0
mov esi, dword [ebp - 0x26c]
test esi, esi
je 0x1004fa5d
test bl, 8
je 0x1004fa5d
or ebx, 0xffffffff
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x1004fa60
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x1004fa60
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
jmp 0x1004fa60
or ebx, 0xffffffff
mov esi, dword [ebp - 0x25c]
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x1004fa90
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x1004fa90
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x1004fa90
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
cmp byte [ebp - 0x241], 0
je 0x1004fb18
lea eax, [ebp - 0x278]
push eax
call fcn.1003b6a0
add esp, 4
mov edi, dword [eax]
lea ecx, [ebp - 0x3a8]
mov dword [ebp - 4], 8
call fcn.10015e70
mov esi, eax
push str.IsPopMessageWndInCDTime_return
push esi
mov byte [ebp - 4], 9
call fcn.10012080
add esp, 8
mov ecx, esi
push dword [ebp - 0x24c]
call fcn.10015fc0
mov eax, dword [edi]
mov ecx, edi
push esi
call dword [eax + 0x14]
lea ecx, [ebp - 0x3a8]
call fcn.10012280
mov esi, dword [ebp - 0x274]
test esi, esi
je 0x1004fb18
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x1004fb18
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], ebx
dec ebx
jne 0x1004fb18
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 4]
mov eax, dword [ebp - 0x24c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100763b4
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.1000a7c0
push 0x80004005
call fcn.1000a7c0
push 0x80004005
call fcn.1000a7c0
push 0x80004005
call fcn.1000a7c0
push 0x80004005
call fcn.1000a7c0
push 0x80070057
call fcn.1000a7c0
int3