Function at 0x450730
Capabilities:
Read .ini file
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [0x4e5bb8]
sub esp, 0x288
push ebx
push ebp
push esi
push edi
push eax
push 0
push str.ForceGetRetryLevel
mov esi, ecx
push str.Debug
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [esi + 0x194]
test ecx, ecx
je 0x450766
test eax, eax
je 0x450ef4
test byte [esi + 0x110], 8
je 0x450ef4
mov al, byte [esi + 0xec]
test al, al
jne 0x450ef4
lea edi, [esi + 0x124]
push str.K9ABGD8U0
mov ecx, edi
call sub.MFC42.DLL_CString::Find_1
cmp eax, 0xffffffff
jne 0x4507be
push str.K9ACGD8U0
mov ecx, edi
call sub.MFC42.DLL_CString::Find_1
cmp eax, 0xffffffff
jne 0x4507be
push str.K9BDGD8U0
mov ecx, edi
call sub.MFC42.DLL_CString::Find_1
cmp eax, 0xffffffff
je 0x450ef4
mov cx, word [esi + 0xf4]
mov dl, byte [esi + 0xf2]
mov al, byte [esi + 0xec]
push 0x80
push ecx
push edx
push eax
mov ecx, esi
call fcn.00435a90
xor ecx, ecx
xor edx, edx
mov word [esp + 0x1d], cx
mov dword [esp + 0x32], edx
mov byte [esp + 0x1f], cl
mov cl, byte [esi + 0x17d]
mov byte [esp + 0x2c], cl
mov ecx, dword [esi + 0x16c]
mov dword [esp + 0x28], ecx
mov cl, byte [esi + 0x18d]
mov word [esp + 0x36], dx
mov dl, byte [esi + 0x17e]
xor al, al
mov byte [esp + 0x1c], 0xff
test cl, cl
mov byte [esp + 0x20], al
mov word [esp + 0x30], 0xffff
mov byte [esp + 0x10], dl
mov byte [esp + 0x14], al
jbe 0x450ef4
xor ebx, ebx
cmp word [esi + 0x18e], bx
jbe 0x450943
cmp bx, 0x22
jbe 0x450931
mov edx, ebx
and edx, 0xffff
and edx, 0x80000001
jns 0x450866
dec edx
or edx, 0xfffffffe
inc edx
mov ecx, dword [esp + 0x20]
and ecx, 0xff
and ecx, 0x80000001
jns 0x45087d
dec ecx
or ecx, 0xfffffffe
inc ecx
cmp edx, ecx
jne 0x450931
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
and ebp, 0xff
and edx, 0xff
imul ebp, edx
test ebp, ebp
mov byte [esp + 0x18], 0
jle 0x450931
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x38]
push edi
lea ecx, [esp + 0x40]
push eax
push ecx
push ebx
push edx
mov ecx, esi
call fcn.0043e490
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
and eax, 0xff
mov edx, dword [esp + 0x29c]
imul eax, dword [esp + 0x28]
and ecx, 0xffff
add edx, eax
mov al, byte [ecx + edx]
mov cl, byte [esi + 0x838]
cmp al, cl
ja 0x45092d
lea ecx, [ebp - 1]
and edi, 0xff
cmp edi, ecx
jne 0x45091a
mov eax, dword [esp + 0x20]
mov dl, byte [esp + 0x14]
and eax, 0xff
mov byte [esp + eax + 0x1c], dl
mov word [esp + eax*2 + 0x30], bx
inc byte [esp + 0x20]
inc byte [esp + 0x18]
mov edi, dword [esp + 0x18]
mov eax, edi
and eax, 0xff
cmp eax, ebp
jl 0x4508ad
mov al, byte [esp + 0x20]
cmp al, 2
jae 0x45095f
inc ebx
cmp bx, word [esi + 0x18e]
jb 0x450847
cmp al, 2
jae 0x45095f
mov cl, byte [esp + 0x14]
mov dl, byte [esi + 0x18d]
inc cl
cmp cl, dl
mov byte [esp + 0x14], cl
jb 0x450838
test al, al
je 0x450ef4
lea eax, [esp + 0x1e]
lea ecx, [esp + 0x34]
mov edi, 2
mov dl, byte [eax - 2]
add ecx, 2
mov byte [eax], dl
mov dx, word [ecx - 6]
mov word [ecx - 2], dx
inc eax
dec edi
jne 0x450974
xor eax, eax
mov al, byte [esi + 0x192]
inc eax
shl eax, 9
push eax
call sub.MFC42.DLL_operatornew
xor ecx, ecx
add esp, 4
mov cl, byte [esi + 0x192]
mov edi, eax
inc ecx
xor eax, eax
shl ecx, 9
mov edx, ecx
mov dword [esp + 0x20], edi
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
xor ebx, ebx
and ecx, 3
push ebx
rep stosb byte es:[edi], al
mov al, byte [esi + 0xf2]
mov cl, byte [esi + 0xec]
push 0x80
push eax
push ecx
push ebx
push ebx
mov ecx, esi
call fcn.0043e690
push ebx
mov edx, dword [esi + 0x1c]
push ebx
push 0xe4
push ebx
push ebx
push ebx
push ebx
push ebx
push 0xb
push 0xfa
push edx
call fcn.00482460
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x88], eax
mov dword [esp + 0x74], ecx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0x90], eax
mov dword [esp + 0x7c], ecx
add esp, 0x2c
mov dword [esp + 0x68], eax
mov dword [esp + 0x54], ecx
xor edx, edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x74], eax
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x90], edx
mov dword [esp + 0x78], eax
mov dword [esp + 0xac], ecx
mov dword [esp + 0x94], edx
mov dword [esp + 0x7c], eax
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0x80], eax
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x9c], edx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x84], eax
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x10], ebx
mov ecx, 0x18
lea edi, [esp + 0x118]
mov edx, dword [0x4e5bb8]
rep stosd dword es:[edi], eax
mov ecx, 0x18
lea edi, [esp + 0x1d8]
rep stosd dword es:[edi], eax
mov ecx, 0x18
lea edi, [esp + 0xb8]
rep stosd dword es:[edi], eax
mov ecx, 0x18
lea edi, [esp + 0x178]
rep stosd dword es:[edi], eax
mov ecx, 0x18
lea edi, [esp + 0x238]
push edx
push 0x10
rep stosd dword es:[edi], eax
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push str.GoodUnitEcc
push str.Debug
call edi
mov byte [esp + 0x26], al
mov eax, dword [0x4e5bb8]
push eax
push 0xc
push str.TestSpeedEcc
push str.Debug
call edi
mov byte [esp + 0x27], al
mov byte [esp + 0x14], bl
jmp 0x450b3b
xor ebx, ebx
push ebx
push ebx
push 0xf1
mov ecx, dword [esi + 0x1c]
push ebx
mov ebx, dword [esp + 0x24]
push ebx
push 0
push 0
push 0
push 0xb
push 0xfa
push ecx
call fcn.00482460
add esp, 0x2c
xor cl, cl
mov byte [esp + 0x18], cl
mov edi, dword [esp + 0x18]
and edi, 0xff
mov al, byte [esp + edi + 0x1c]
cmp al, 0xff
je 0x450d93
cmp cl, 2
jae 0x450c0c
mov cx, word [esp + edi*2 + 0x30]
push ecx
push eax
mov ecx, esi
call fcn.00444ee0
test eax, eax
je 0x450eaf
xor ebp, ebp
cmp word [esi + 0x190], bp
jbe 0x450c0c
mov al, byte [esi + 0x192]
mov edx, ebp
and edx, 0xffff
push 0x3ff
and edx, 0x8000007f
jns 0x450bc7
dec edx
or edx, 0xffffff80
inc edx
mov ecx, eax
and ecx, 0xff
imul edx, ecx
mov ecx, dword [0x4e6018]
shl edx, 9
add edx, ecx
mov ecx, esi
push edx
xor dx, dx
mov dl, al
push eax
imul edx, ebp
mov ax, word [esp + edi*2 + 0x3c]
push edx
push eax
mov al, byte [esp + edi + 0x30]
push eax
call fcn.00444f20
test eax, eax
je 0x450ec6
inc ebp
cmp bp, word [esi + 0x190]
jb 0x450ba7
xor ebp, ebp
cmp word [esi + 0x190], bp
mov dword [esp + 0x28], ebp
jbe 0x450d1c
mov al, byte [esi + 0x192]
xor dx, dx
mov ecx, dword [esp + 0x20]
mov dl, al
imul edx, ebp
push ecx
push eax
mov ax, word [esp + edi*2 + 0x38]
push edx
push eax
mov al, byte [esp + edi + 0x2c]
push eax
mov ecx, esi
call fcn.00450f10
test eax, eax
je 0x450edd
mov al, byte [esi + 0x192]
mov cl, al
shr cl, 1
je 0x450d0a
mov edx, dword [esp + 0x20]
and eax, 0xff
shl eax, 9
and ecx, 0xff
lea ebp, [eax + edx + 0xc]
mov dl, byte [ebp]
test dl, dl
jne 0x450c93
mov eax, ebx
and eax, 0xff
lea eax, [edi + eax*4]
inc dword [esp + eax*4 + 0x118]
lea eax, [esp + eax*4 + 0x118]
cmp dl, 0xee
jae 0x450cb6
cmp dl, byte [esp + 0x27]
jbe 0x450cb6
mov eax, ebx
and eax, 0xff
lea eax, [edi + eax*4]
inc dword [esp + eax*4 + 0x238]
lea eax, [esp + eax*4 + 0x238]
cmp dl, byte [esp + 0x26]
ja 0x450cd0
mov edx, ebx
and edx, 0xff
lea eax, [edi + edx*4]
lea eax, [esp + eax*4 + 0x1d8]
jmp 0x450cf9
cmp dl, 0xee
mov edx, ebx
jae 0x450ce9
and edx, 0xff
lea eax, [edi + edx*4]
lea eax, [esp + eax*4 + 0xb8]
jmp 0x450cf9
and edx, 0xff
lea eax, [edi + edx*4]
lea eax, [esp + eax*4 + 0x178]
mov edx, dword [eax]
inc edx
inc ebp
dec ecx
mov dword [eax], edx
jne 0x450c74
mov ebp, dword [esp + 0x28]
inc ebp
cmp bp, word [esi + 0x190]
mov dword [esp + 0x28], ebp
jb 0x450c1f
mov eax, ebx
and eax, 0xff
shl eax, 2
mov ebp, dword [esp + eax + 0x58]
lea ecx, [edi + eax]
mov edi, dword [esp + eax + 0x40]
shl ecx, 2
mov edx, dword [esp + ecx + 0x118]
add ebp, edx
mov edx, dword [esp + ecx + 0x1d8]
mov dword [esp + eax + 0x58], ebp
mov ebp, dword [esp + eax + 0x88]
add edi, edx
mov edx, dword [esp + ecx + 0xb8]
mov dword [esp + eax + 0x40], edi
mov edi, dword [esp + eax + 0x70]
add ebp, edx
mov edx, dword [esp + ecx + 0x178]
mov ecx, dword [esp + ecx + 0x238]
add edi, edx
mov edx, dword [esp + eax + 0xa0]
mov dword [esp + eax + 0x88], ebp
mov dword [esp + eax + 0x70], edi
lea eax, [esp + eax + 0xa0]
add edx, ecx
mov cl, byte [esp + 0x18]
mov dword [eax], edx
inc cl
cmp cl, 4
mov byte [esp + 0x18], cl
jb 0x450b67
and ebx, 0xff
shl ebx, 2
mov eax, dword [esp + ebx + 0x70]
test eax, eax
ja 0x450e18
mov eax, dword [esp + ebx + 0x40]
xor ecx, ecx
mov cl, byte [esi + 0x34]
lea edx, [ecx + ecx*4]
lea ecx, [eax + edx*8]
mov edx, dword [esp + 0x10]
cmp ecx, edx
jbe 0x450df2
mov ebx, dword [esp + ebx + 0x58]
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jbe 0x450df2
mov dl, byte [esp + 0x14]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x10], eax
mov byte [esi + 0x198], dl
mov dword [esi + 0x194], 1
push 0
mov eax, dword [esi + 0x1c]
push 0
push 0xf1
push 0
push 0
push 0
push 0
push 0
push 0xb
push 0xfa
push eax
call fcn.00482460
add esp, 0x2c
mov al, byte [esp + 0x14]
inc al
cmp al, 6
mov byte [esp + 0x14], al
jb 0x450b39
mov cl, byte [esi + 0x198]
push 0
mov edx, dword [esi + 0x1c]
push 0
push 0xf1
push 0
push ecx
push 0
push 0
push 0
push 0xb
push 0xfa
push edx
call fcn.00482460
add esp, 0x2c
lea ebx, [esp + 0x1c]
lea edi, [esp + 0x30]
mov ebp, 2
mov ax, word [edi]
mov cl, byte [ebx]
push eax
push ecx
mov ecx, esi
call fcn.00444ee0
add edi, 2
inc ebx
dec ebp
jne 0x450e62
push 0
mov edx, dword [esi + 0x1c]
push 0
push 0xe4
push 0
push 1
push 0
push 0
push 0
push 0xb
push 0xfa
push edx
call fcn.00482460
add esp, 0x2c
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x288
ret 4
lea ecx, [esp + 0x10]
push 0x4d8340
push ecx
mov dword [esp + 0x18], 0xc1000
call sub.MSVCRT.dll__CxxThrowException
lea edx, [esp + 0x10]
push 0x4d8340
push edx
mov dword [esp + 0x18], 0xc2000
call sub.MSVCRT.dll__CxxThrowException
lea eax, [esp + 0x10]
push 0x4d8340
push eax
mov dword [esp + 0x18], 0xc3000
call sub.MSVCRT.dll__CxxThrowException
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x288
ret 4