Function at 0x436000
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x4a8c76
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x314
mov al, byte [esp + 0x324]
push edi
mov edi, ecx
test al, al
mov dword [esp + 0xc], edi
jne 0x436045
mov edi, dword [esp + 0x330]
mov ecx, 0x60
xor eax, eax
rep stosd dword es:[edi], eax
xor ax, ax
jmp 0x43643c
mov eax, dword [0x4e5bb8]
push ebx
mov bl, byte [esp + 0x330]
push ebp
push esi
xor esi, esi
push eax
push esi
push str.CheckRandomPage
push str.RandomPage
and bl, 0xf
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ebp, eax
mov al, byte [edi + 0x12e]
cmp al, 2
mov ecx, edi
jne 0x436087
call fcn.00435fc0
mov ebp, eax
mov ecx, ebp
jmp 0x436413
call fcn.00435fc0
cmp ebp, esi
je 0x4361d2
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x1c]
mov dword [esp + 0x32c], esi
call sub.MFC42.DLL_CString::CString_1
mov ecx, 0xc0
or eax, 0xffffffff
lea edi, [esp + 0x24]
xor ebp, ebp
rep stosd dword es:[edi], eax
mov byte [esp + 0x32c], 1
xor edi, edi
mov dword [esp + 0x14], 0xa
push edi
lea eax, [esp + 0x14]
push str.PageStart_d
push eax
call sub.MFC42.DLL_CString::Format
push edi
lea ecx, [esp + 0x2c]
push str.PageNum_d
push ecx
call sub.MFC42.DLL_CString::Format
mov edx, dword [0x4e5bb8]
mov eax, dword [esp + 0x28]
add esp, 0x18
push edx
push 0xffff
push eax
push str.RandomPage
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [0x4e5bb8]
mov edx, dword [esp + 0x1c]
push ecx
push 0
push edx
push str.RandomPage
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
cmp si, 0xffff
je 0x436166
test ax, ax
je 0x436166
jbe 0x436166
and eax, 0xffff
mov ebx, eax
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x24]
push ebp
push eax
push esi
call fcn.00479e30
cmp ax, 0xffff
jne 0x436162
mov ecx, ebp
and ecx, 0xffff
inc ebp
mov word [esp + ecx*2 + 0x24], si
inc esi
dec ebx
jne 0x43613e
mov eax, dword [esp + 0x14]
inc edi
dec eax
mov dword [esp + 0x14], eax
jne 0x4360cf
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x24]
push ebp
push edx
call fcn.00479160
mov ecx, ebp
mov edi, dword [esp + 0x33c]
and ecx, 0xffff
lea esi, [esp + 0x24]
shl ecx, 1
mov eax, ecx
mov byte [esp + 0x32c], 0
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x32c], 0xffffffff
call sub.MFC42.DLL_CString::CString
jmp 0x436436
test bl, bl
je 0x43640f
cmp ax, 8
jbe 0x43640f
cmp bl, 8
jne 0x436247
lea edx, [edi + 0x2a9a]
xor ebp, ebp
mov eax, edx
mov ecx, 0x20
cmp word [eax], 0x180
jae 0x436200
inc ebp
add eax, 2
dec ecx
jne 0x4361f8
cmp bp, si
jne 0x436226
mov ecx, edi
call fcn.00435fc0
cmp ax, 0x10
mov ebp, eax
jb 0x43621f
mov ebp, 0x10
mov ecx, ebp
jmp 0x436413
mov ecx, ebp
mov edi, dword [esp + 0x33c]
and ecx, 0xffff
mov esi, edx
shl ecx, 1
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x436431
cmp bl, 9
jne 0x436297
mov ecx, edi
call fcn.00435fc0
cmp ax, 0x24
jb 0x43640f
mov edx, dword [esp + 0x33c]
lea esi, [edi + 0x3f8]
mov ecx, 0xc
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x18]
and eax, 0xffff
lea edi, [edx + 0x30]
mov ebp, 0x24
lea esi, [ecx + eax*2 + 0x3e0]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
jmp 0x436436
cmp bl, 0xa
jne 0x4362f8
mov ebx, dword [esp + 0x33c]
xor ebp, ebp
xor edx, edx
cmp dx, 0x180
jae 0x436436
mov eax, esi
mov ecx, edx
and eax, 0xffff
and ecx, 0xffff
mov ax, word [eax*2 + 0x4bb890]
mov cx, word [edi + ecx*2 + 0x3f8]
cmp ax, cx
jne 0x4362e7
mov ecx, ebp
and ecx, 0xffff
inc esi
inc edx
inc ebp
mov word [ebx + ecx*2], ax
jmp 0x4362ed
jae 0x4362ec
inc esi
jmp 0x4362ed
inc edx
cmp si, 0x23
jb 0x4362a7
jmp 0x436436
cmp bl, 0xb
jne 0x436309
shr ax, 1
mov ebp, eax
mov ecx, ebp
jmp 0x436413
cmp byte [edi + 0x12f], 2
jne 0x436358
xor cx, cx
mov edx, eax
mov cl, bl
shr dx, cl
cmp dx, 8
jbe 0x43632e
xor cx, cx
mov cl, bl
shr ax, cl
mov ebp, eax
jmp 0x436333
mov ebp, 8
mov ecx, ebp
lea esi, [edi + 0x3f8]
mov edi, dword [esp + 0x33c]
and ecx, 0xffff
shl ecx, 1
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x436431
mov dx, ax
xor cx, cx
shr dx, 2
mov cl, bl
shr dx, cl
cmp dx, 2
jbe 0x43637e
mov dx, ax
xor cx, cx
shr dx, 2
mov cl, bl
shr dx, cl
jmp 0x436383
mov edx, 2
cmp ax, si
mov dword [esp + 0x10], edx
jne 0x436392
xor edx, edx
mov dword [esp + 0x10], edx
mov cx, ax
mov ebx, dword [esp + 0x33c]
sub eax, edx
mov word [esp + 0x1c], si
shr cx, 1
mov word [esp + 0x22], ax
mov esi, ecx
mov eax, edx
sub esi, edx
and eax, 0xffff
mov word [esp + 0x1e], si
mov word [esp + 0x20], cx
lea edx, [esp + 0x1c]
shl eax, 1
mov dword [esp + 0x14], 4
jmp 0x4363d4
mov edi, dword [esp + 0x18]
xor esi, esi
mov ecx, eax
mov si, word [edx]
mov ebp, ecx
shr ecx, 2
lea esi, [edi + esi*2 + 0x3f8]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
add edx, 2
and ecx, 3
add ebx, eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
dec ecx
mov dword [esp + 0x14], ecx
jne 0x4363d0
mov eax, dword [esp + 0x10]
lea ebp, [eax*4]
jmp 0x436436
mov ebp, eax
mov ecx, eax
and ecx, 0xffff
lea esi, [edi + 0x3f8]
mov edi, dword [esp + 0x33c]
shl ecx, 1
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ax, bp
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x318]
pop edi
mov dword fs:[0], ecx
add esp, 0x320
ret 0xc