Function at 0x10016c26
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa30
push ebx
push esi
mov esi, ecx
push edi
mov eax, dword [esi]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x10016c5c
cmp ecx, 1
je 0x10016c5c
cmp ecx, 2
je 0x10016c5c
push ecx
push str._AhnUpDoIt__invalid_dwUpdateMethod:__d
push 1
call fcn.1000b21a
add esp, 0xc
jmp 0x100173f5
push dword [eax + 0x440]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
mov ebx, 0x104
jle 0x10017234
call fcn.100019db
and byte [ebp - 0x230], 0
push 0x40
pop ecx
xor eax, eax
lea edi, [ebp - 0x22f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [esi]
cmp word [eax + 0x28], 0
je 0x10016d03
push 0x28
pop edi
mov dword [ebp - 4], edi
cmp edi, 0x28
je 0x10016cb7
push 0x1004fc70
lea eax, [ebp - 0x230]
push ebx
push eax
call fcn.100020b4
mov eax, dword [esi]
mov ecx, dword [ebp - 4]
mov ax, word [ecx + eax]
push eax
call fcn.10013a08
test eax, eax
mov eax, dword [esi]
pop ecx
movzx eax, word [edi + eax]
push eax
lea eax, [ebp - 0x230]
push eax
je 0x10016ce0
push str._s_02x
jmp 0x10016ce5
push str._s_04x
lea eax, [ebp - 0x230]
push ebx
push eax
call fcn.10001426
mov eax, dword [esi]
add esp, 0x14
inc edi
inc edi
mov dword [ebp - 4], edi
cmp word [edi + eax], 0
jne 0x10016ca0
xor edi, edi
cmp word [esi + 0xd9e], di
jbe 0x10016d52
push 0x1004fc70
lea eax, [ebp - 0x230]
push ebx
push eax
call fcn.100020b4
movzx eax, di
movzx eax, word [esi + eax*2 + 0x99e]
push eax
lea eax, [ebp - 0x230]
push eax
push str._s_02x
lea eax, [ebp - 0x230]
push ebx
push eax
call fcn.10001426
add esp, 0x14
inc edi
cmp di, word [esi + 0xd9e]
jb 0x10016d0e
xor edi, edi
cmp word [esi + 0x59a], di
jbe 0x10016da1
push 0x1004fc70
lea eax, [ebp - 0x230]
push ebx
push eax
call fcn.100020b4
movzx eax, di
movzx eax, word [esi + eax*2 + 0x19a]
push eax
lea eax, [ebp - 0x230]
push eax
push str._s_04x
lea eax, [ebp - 0x230]
push ebx
push eax
call fcn.10001426
add esp, 0x14
inc edi
cmp di, word [esi + 0x59a]
jb 0x10016d5d
xor edi, edi
cmp word [esi + 0x99c], di
jbe 0x10016df0
push 0x1004fc70
lea eax, [ebp - 0x230]
push ebx
push eax
call fcn.100020b4
movzx eax, di
movzx eax, word [esi + eax*2 + 0x59c]
push eax
lea eax, [ebp - 0x230]
push eax
push str._s_04x
lea eax, [ebp - 0x230]
push ebx
push eax
call fcn.10001426
add esp, 0x14
inc edi
cmp di, word [esi + 0x99c]
jb 0x10016dac
mov edx, dword [esi]
mov ecx, 0xff
lea edi, [ebp - 0x62f]
mov eax, dword [edx + 0x10]
and byte [ebp - 0x630], 0
and eax, 1
mov dword [ebp - 4], eax
xor eax, eax
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push dword [edx + 0x21474]
lea eax, [ebp - 0x230]
push dword [edx + 0x2146c]
push dword [edx + 0x21478]
push dword [edx + 0x21470]
push dword [ebp - 4]
push eax
lea eax, [ebp - 0x630]
push dword [edx + 0x21468]
push dword [edx + 0x440]
push str._s_na_03dpd_ssvr_dserial_sse_dukey_sst_spriority1
push 0x400
push eax
call fcn.10001426
add esp, 0x2c
lea eax, [ebp - 0x630]
mov ecx, esi
push eax
call fcn.10015e5e
push 1
mov dword [ebp - 8], eax
pop ecx
cmp eax, ecx
je 0x10016f25
and byte [ebp - 0xa30], 0
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0xa2f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [esi]
push dword [eax + 0x444]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x10016f18
mov eax, dword [esi]
lea ecx, [ebp - 0x230]
push dword [eax + 0x21474]
push dword [eax + 0x2146c]
push dword [eax + 0x21478]
push dword [eax + 0x21470]
push dword [ebp - 4]
push ecx
push dword [eax + 0x21468]
push dword [eax + 0x444]
lea eax, [ebp - 0xa30]
push str._s_na_03dpd_ssvr_dserial_sse_dukey_sst_spriority2
push 0x400
push eax
call fcn.10001426
add esp, 0x2c
lea eax, [ebp - 0xa30]
mov ecx, esi
push eax
call fcn.10015e5e
test eax, eax
mov dword [ebp - 8], eax
je 0x10016f18
mov eax, dword [esi + 4]
push str._AhnUpDoIt2__Secondary_GradualURL_Success.
push 1
or dword [eax + 0x42c], 4
call fcn.1000b21a
pop ecx
pop ecx
cmp dword [ebp - 8], 1
jne 0x10017234
push 1
pop ecx
mov dword [ebp - 8], ecx
lea edi, [esi + 0x24804]
mov dword [ebp - 4], ecx
push dword [ebp - 8]
call fcn.10013a08
pop ecx
push dword [ebp - 4]
test eax, eax
je 0x10016f48
push str._02x
jmp 0x10016f4d
push str._04x
lea eax, [ebp - 0x28]
push 0x20
push eax
call fcn.10001426
add esp, 0x10
lea eax, [ebp - 0x12c]
push edi
push ebx
push eax
lea eax, [ebp - 0x28]
push 0x100583f4
push eax
push str.PatchURL
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x12c]
push eax
call fcn.10031620
test eax, eax
pop ecx
je 0x10016fb0
lea eax, [esi + 0x54]
push eax
lea eax, [esi + 0x95]
push eax
lea eax, [ebp - 0x12c]
push dword [esi + 0x50]
push eax
push dword [ebp - 8]
call fcn.10001a1b
add esp, 0x14
mov ecx, esi
call fcn.1001f363
inc dword [ebp - 8]
inc dword [ebp - 4]
cmp word [ebp - 8], 0x1ff
jb 0x10016f31
and dword [ebp - 4], 0
cmp word [esi + 0xd9e], 0
jbe 0x10017091
movzx eax, word [ebp - 4]
and byte [ebp - 0x28], 0
push 7
mov dx, word [esi + eax*2 + 0x99e]
pop ecx
xor eax, eax
lea edi, [ebp - 0x27]
rep stosd dword es:[edi], eax
and byte [ebp - 0x12c], 0
push 0x40
stosw word es:[edi], ax
stosb byte es:[edi], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x12b]
mov dword [ebp - 8], edx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
movzx eax, dx
push eax
push str._02x
lea eax, [ebp - 0x28]
push 0x20
push eax
call fcn.10001426
add esp, 0x10
lea eax, [esi + 0x24804]
push eax
lea eax, [ebp - 0x12c]
push ebx
push eax
lea eax, [ebp - 0x28]
push 0x100583f4
push eax
push str.PatchURL
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x12c]
push eax
call fcn.10031620
test eax, eax
pop ecx
je 0x1001707d
lea eax, [esi + 0x54]
push eax
lea eax, [esi + 0x95]
push eax
lea eax, [ebp - 0x12c]
push dword [esi + 0x50]
push eax
push dword [ebp - 8]
call fcn.10001a1b
add esp, 0x14
mov ecx, esi
call fcn.1001f363
inc dword [ebp - 4]
mov ax, word [ebp - 4]
cmp ax, word [esi + 0xd9e]
jb 0x10016fd4
and dword [ebp - 4], 0
cmp word [esi + 0x59a], 0
jbe 0x10017160
movzx eax, word [ebp - 4]
and byte [ebp - 0x28], 0
push 7
mov dx, word [esi + eax*2 + 0x19a]
pop ecx
xor eax, eax
lea edi, [ebp - 0x27]
rep stosd dword es:[edi], eax
and byte [ebp - 0x12c], 0
push 0x40
stosw word es:[edi], ax
stosb byte es:[edi], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x12b]
mov dword [ebp - 8], edx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
movzx eax, dx
push eax
push str._04x
lea eax, [ebp - 0x28]
push 0x20
push eax
call fcn.10001426
add esp, 0x10
lea eax, [esi + 0x24804]
push eax
lea eax, [ebp - 0x12c]
push ebx
push eax
lea eax, [ebp - 0x28]
push 0x100583f4
push eax
push str.PatchURL
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x12c]
push eax
call fcn.10031620
test eax, eax
pop ecx
je 0x1001714c
lea eax, [esi + 0x54]
push eax
lea eax, [esi + 0x95]
push eax
lea eax, [ebp - 0x12c]
push dword [esi + 0x50]
push eax
push dword [ebp - 8]
call fcn.10001a1b
add esp, 0x14
mov ecx, esi
call fcn.1001f363
inc dword [ebp - 4]
mov ax, word [ebp - 4]
cmp ax, word [esi + 0x59a]
jb 0x100170a3
and dword [ebp - 4], 0
cmp word [esi + 0x99c], 0
jbe 0x10017712
movzx eax, word [ebp - 4]
and byte [ebp - 0x28], 0
push 7
mov dx, word [esi + eax*2 + 0x59c]
pop ecx
xor eax, eax
lea edi, [ebp - 0x27]
rep stosd dword es:[edi], eax
and byte [ebp - 0x12c], 0
push 0x40
stosw word es:[edi], ax
stosb byte es:[edi], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x12b]
mov dword [ebp - 8], edx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
movzx eax, dx
push eax
push str._04x
lea eax, [ebp - 0x28]
push 0x20
push eax
call fcn.10001426
add esp, 0x10
lea eax, [esi + 0x24804]
push eax
lea eax, [ebp - 0x12c]
push ebx
push eax
lea eax, [ebp - 0x28]
push 0x100583f4
push eax
push str.PatchURL
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x12c]
push eax
call fcn.10031620
test eax, eax
pop ecx
je 0x1001721b
lea eax, [esi + 0x54]
push eax
lea eax, [esi + 0x95]
push eax
lea eax, [ebp - 0x12c]
push dword [esi + 0x50]
push eax
push dword [ebp - 8]
call fcn.10001a1b
add esp, 0x14
mov ecx, esi
call fcn.1001f363
inc dword [ebp - 4]
mov ax, word [ebp - 4]
cmp ax, word [esi + 0x99c]
jb 0x10017172
jmp 0x10017712
mov eax, dword [esi]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
push dword [eax + 0x438]
call edi
test eax, eax
jle 0x10017712
call fcn.100019db
mov eax, dword [esi]
mov ecx, esi
push dword [eax + 0x438]
call fcn.10015af8
cmp eax, 1
mov dword [ebp - 8], eax
je 0x100173fc
mov eax, dword [esi]
push dword [eax + 0x43c]
call edi
test eax, eax
jle 0x100172c1
mov eax, dword [esi]
push dword [eax + 0x43c]
push dword [eax + 0x438]
call fcn.100333c0
pop ecx
test eax, eax
pop ecx
je 0x100172c1
mov eax, dword [esi]
mov ecx, esi
push dword [eax + 0x43c]
call fcn.10015af8
test eax, eax
mov dword [ebp - 8], eax
je 0x100172c1
mov eax, dword [esi + 4]
push str._AhnUpDoIt2__dwRetFlag_:_AURET_USE_SECONDARYURL_by_Secondary_ahnpatch.ui_Success
push 1
or dword [eax + 0x42c], 4
call fcn.1000b21a
pop ecx
pop ecx
cmp dword [ebp - 8], 1
je 0x100173fc
and byte [ebp - 0x12c], 0
push 0x40
pop ecx
xor eax, eax
lea edi, [ebp - 0x12b]
push str.user.dat
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x100582d8
lea eax, [ebp - 0x12c]
push ebx
push eax
call fcn.10002f5f
mov eax, dword [esi]
add esp, 0x10
lea edi, [esi + 0x95]
mov ecx, esi
push edi
push dword [eax + 0x438]
call fcn.100207f0
lea ecx, [ebp - 0x12c]
lea eax, [esi + 0x54]
push ecx
push 0x20
push eax
push 0x100583f4
push edi
push str.CdnInfo
call fcn.1000df28
mov eax, dword [esi]
push dword [eax + 0x438]
call fcn.10009e76
cmp eax, 1
pop ecx
jne 0x100173ef
push edi
call fcn.10031620
test eax, eax
pop ecx
je 0x100173ef
lea eax, [esi + 0x54]
push eax
call fcn.10031620
test eax, eax
pop ecx
je 0x100173ef
and byte [ebp - 0x630], 0
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x62f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [esi]
push dword [eax + 0x438]
lea eax, [ebp - 0x630]
push 0x400
push eax
call fcn.1000180e
lea eax, [esi + 0x54]
lea edi, [esi + 0x95]
push eax
lea eax, [ebp - 0x630]
push edi
push eax
call fcn.10002a7c
mov eax, dword [esi]
add esp, 0xc
mov eax, dword [eax + 0x24]
push edi
add eax, 0x988
push 0x800
push eax
call fcn.1000180e
lea eax, [ebp - 0x630]
mov ecx, esi
push eax
call fcn.10015af8
push 1
mov dword [ebp - 8], eax
pop eax
cmp dword [ebp - 8], eax
jne 0x100173f5
mov dword [esi + 0x50], eax
mov eax, dword [esi + 4]
or byte [eax + 0x42c], 0x80
cmp dword [ebp - 8], 1
je 0x100173fc
xor eax, eax
jmp 0x10017715
and dword [ebp - 4], 0
cmp word [esi + 0xd9e], 0
jbe 0x100174cb
movzx eax, word [ebp - 4]
and byte [ebp - 0x28], 0
push 7
mov dx, word [esi + eax*2 + 0x99e]
pop ecx
xor eax, eax
lea edi, [ebp - 0x27]
rep stosd dword es:[edi], eax
and byte [ebp - 0x12c], 0
push 0x40
stosw word es:[edi], ax
stosb byte es:[edi], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x12b]
mov dword [ebp - 8], edx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
movzx eax, dx
push eax
push str._02x
lea eax, [ebp - 0x28]
push 0x20
push eax
call fcn.10001426
add esp, 0x10
lea eax, [esi + 0x24804]
push eax
lea eax, [ebp - 0x12c]
push ebx
push eax
lea eax, [ebp - 0x28]
push 0x100583f4
push eax
push str.PatchURL
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x12c]
push eax
call fcn.10031620
test eax, eax
pop ecx
je 0x100174b7
lea eax, [esi + 0x54]
push eax
lea eax, [esi + 0x95]
push eax
lea eax, [ebp - 0x12c]
push dword [esi + 0x50]
push eax
push dword [ebp - 8]
call fcn.10001a1b
add esp, 0x14
mov ecx, esi
call fcn.1001f363
inc dword [ebp - 4]
mov ax, word [ebp - 4]
cmp ax, word [esi + 0xd9e]
jb 0x1001740e
and dword [ebp - 4], 0
cmp word [esi + 0x59a], 0
jbe 0x1001759a
movzx eax, word [ebp - 4]
and byte [ebp - 0x28], 0
push 7
mov dx, word [esi + eax*2 + 0x19a]
pop ecx
xor eax, eax
lea edi, [ebp - 0x27]
rep stosd dword es:[edi], eax
and byte [ebp - 0x12c], 0
push 0x40
stosw word es:[edi], ax
stosb byte es:[edi], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x12b]
mov dword [ebp - 8], edx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
movzx eax, dx
push eax
push str._04x
lea eax, [ebp - 0x28]
push 0x20
push eax
call fcn.10001426
add esp, 0x10
lea eax, [esi + 0x24804]
push eax
lea eax, [ebp - 0x12c]
push ebx
push eax
lea eax, [ebp - 0x28]
push 0x100583f4
push eax
push str.PatchURL
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x12c]
push eax
call fcn.10031620
test eax, eax
pop ecx
je 0x10017586
lea eax, [esi + 0x54]
push eax
lea eax, [esi + 0x95]
push eax
lea eax, [ebp - 0x12c]
push dword [esi + 0x50]
push eax
push dword [ebp - 8]
call fcn.10001a1b
add esp, 0x14
mov ecx, esi
call fcn.1001f363
inc dword [ebp - 4]
mov ax, word [ebp - 4]
cmp ax, word [esi + 0x59a]
jb 0x100174dd
push 1
pop edi
mov dword [ebp - 4], edi
push edi
call fcn.10013a08
pop ecx
push dword [ebp - 4]
test eax, eax
je 0x100175b5
push str._02x
jmp 0x100175ba
push str._04x
lea eax, [ebp - 0x28]
push 0x20
push eax
call fcn.10001426
add esp, 0x10
mov ecx, esi
push edi
call fcn.10016678
test eax, eax
lea eax, [esi + 0x24804]
push eax
lea eax, [ebp - 0x12c]
push ebx
push eax
lea eax, [ebp - 0x28]
push 0x100583f4
push eax
je 0x100175f3
push str.BetaPatchURL
jmp 0x100175f8
push str.PatchURL
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x12c]
push eax
call fcn.10031620
test eax, eax
pop ecx
je 0x10017634
lea eax, [esi + 0x54]
push eax
lea eax, [esi + 0x95]
push eax
lea eax, [ebp - 0x12c]
push dword [esi + 0x50]
push eax
push edi
call fcn.10001a1b
add esp, 0x14
mov ecx, esi
call fcn.1001f363
inc edi
inc dword [ebp - 4]
cmp di, 0x1ff
jb 0x100175a0
and dword [ebp - 4], 0
cmp word [esi + 0x99c], 0
jbe 0x10017712
movzx eax, word [ebp - 4]
and byte [ebp - 0x28], 0
push 7
mov dx, word [esi + eax*2 + 0x59c]
pop ecx
xor eax, eax
lea edi, [ebp - 0x27]
rep stosd dword es:[edi], eax
and byte [ebp - 0x12c], 0
push 0x40
stosw word es:[edi], ax
stosb byte es:[edi], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x12b]
mov dword [ebp - 8], edx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
movzx eax, dx
push eax
push str._04x
lea eax, [ebp - 0x28]
push 0x20
push eax
call fcn.10001426
add esp, 0x10
lea eax, [esi + 0x24804]
push eax
lea eax, [ebp - 0x12c]
push ebx
push eax
lea eax, [ebp - 0x28]
push 0x100583f4
push eax
push str.PatchURL
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x12c]
push eax
call fcn.10031620
test eax, eax
pop ecx
je 0x100176fe
lea eax, [esi + 0x54]
push eax
lea eax, [esi + 0x95]
push eax
lea eax, [ebp - 0x12c]
push dword [esi + 0x50]
push eax
push dword [ebp - 8]
call fcn.10001a1b
add esp, 0x14
mov ecx, esi
call fcn.1001f363
inc dword [ebp - 4]
mov ax, word [ebp - 4]
cmp ax, word [esi + 0x99c]
jb 0x10017655
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret