Function at 0x10173490
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1028c709
mov eax, dword fs:[0]
push eax
sub esp, 0x2e0
mov eax, dword [0x103fb8f8]
xor eax, esp
mov dword [esp + 0x2d8], eax
push ebx
push esi
push edi
mov eax, dword [0x103fb8f8]
xor eax, esp
push eax
lea eax, [esp + 0x2f0]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x40], ebx
mov edi, dword [0x102ab9d0]
push 0
push 0x102adb08
call edi
mov dword [esp + 0x88], eax
push 0xffffffffffffffff
push 0
lea eax, [esp + 0xc4]
mov dword [esp + 0x308], 0
push str.Patch_files__.1337_
push eax
call fcn.10177230
mov esi, eax
push 0xffffffffffffffff
push 0
lea eax, [esp + 0xd8]
mov byte [esp + 0x318], 1
push str.Open_patch
push eax
call fcn.10177230
push 0
push 0
push esi
lea ecx, [esp + 0xb4]
mov byte [esp + 0x32c], 2
push ecx
push eax
lea eax, [esp + 0x68]
push ebx
push eax
call dword [0x102ad2f0]
add esp, 0x44
lea ecx, [esp + 0xb8]
mov byte [esp + 0x2f8], 4
call dword [0x102aba64]
lea ecx, [esp + 0xb4]
mov byte [esp + 0x2f8], 5
call dword [0x102aba64]
lea ecx, [esp + 0x80]
mov byte [esp + 0x2f8], 6
call dword [0x102aba64]
mov eax, dword [0x102ab97c]
mov dword [esp + 0x4c], 0
mov byte [esp + 0x74], 0
mov byte [esp + 0x1f], 0
mov dword [esp + 0x38], eax
mov dword [esp + 0x18], eax
mov esi, dword [esp + 0x2c]
mov ebx, 0xffffffff
mov byte [esp + 0x2f8], 7
mov ecx, dword [esi + 0xc]
sub ecx, dword [esi + 8]
je 0x101740fe
mov ecx, dword [esi]
cmp ecx, 1
je 0x101735ec
test ecx, ecx
je 0x101735ec
push dword [esi + 4]
lea ecx, [esp + 0x30]
call fcn.10023540
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 8]
add ecx, 4
lea ebx, [esi + ecx*4]
mov ecx, dword [esi]
mov dword [esp + 0x20], ebx
cmp ecx, 1
je 0x10173618
test ecx, ecx
je 0x10173618
push dword [esi + 4]
lea ecx, [esp + 0x30]
call fcn.10023540
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0xc]
lea esi, [esi + ecx*4]
add esi, 0x10
mov dword [esp + 0x70], esi
cmp ebx, esi
je 0x10173c58
lea ecx, [ecx]
mov eax, dword [ebx]
cmp dword [eax + 4], 0
je 0x10173c45
lea eax, [esp + 0x6c]
push ebx
push eax
call dword [0x102ab950]
add esp, 8
lea eax, [esp + 0x6c]
mov byte [esp + 0x2f8], 8
push eax
lea ecx, [esp + 0x98]
call dword [0x102ab960]
push 0x11
lea ecx, [esp + 0x98]
mov byte [esp + 0x2fc], 9
call dword [0x102ab954]
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0xc0]
call dword [0x102ab788]
lea eax, [esp + 0x50]
mov byte [esp + 0x2f8], 0xa
push eax
lea ecx, [esp + 0xc0]
call dword [0x102ab780]
lea ecx, [esp + 0x94]
mov byte [esp + 0x2f8], 0xb
call dword [0x102ab964]
push 1
push 0x102b72b0
call edi
mov dword [esp + 0x84], eax
push 2
push 0x102bb7e8
mov byte [esp + 0x308], 0xc
call edi
add esp, 0x10
mov dword [esp + 0x8c], eax
push 1
lea eax, [esp + 0x80]
mov byte [esp + 0x2fc], 0xd
push eax
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0x5c]
call dword [0x102ab8d8]
push eax
lea ecx, [esp + 0x54]
call dword [0x102aba20]
lea ecx, [esp + 0x8c]
mov byte [esp + 0x2f8], 0xc
call dword [0x102aba64]
lea ecx, [esp + 0x7c]
mov byte [esp + 0x2f8], 0xb
call dword [0x102aba64]
push 1
push 0x102b72b0
call edi
add esp, 8
mov dword [esp + 0x78], eax
push 1
push 1
lea eax, [esp + 0x80]
mov byte [esp + 0x300], 0xe
push eax
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x60]
call dword [0x102ab5c8]
lea ecx, [esp + 0x78]
mov byte [esp + 0x2f8], 0x10
call dword [0x102aba64]
mov edi, dword [esp + 0x44]
mov ecx, dword [edi + 8]
mov eax, dword [edi + 0xc]
sub eax, ecx
jne 0x1017381a
push 0xffffffffffffffff
push eax
lea eax, [esp + 0x68]
push str.The_patch_file_is_empty...
push eax
call fcn.10177230
mov edi, eax
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x80]
mov byte [esp + 0x310], 0x11
push str.Error_
push eax
call fcn.10177230
push edi
push eax
push dword [esp + 0x68]
mov byte [esp + 0x324], 0x12
call fcn.101b2480
add esp, 0x2c
mov byte [esp + 0x2f8], 0x11
lea ecx, [esp + 0x68]
call dword [0x102aba64]
lea ecx, [esp + 0x60]
mov byte [esp + 0x2f8], 0x10
call dword [0x102aba64]
lea ecx, [esp + 0x44]
mov byte [esp + 0x2f8], 0xb
call fcn.1000c5d0
jmp 0x10173bf1
xor edx, edx
mov dword [esp + 0x58], 0
mov dword [esp + 0x3c], edx
test eax, eax
jle 0x10173b85
lea eax, [ecx + 4]
add eax, edx
lea ecx, [esp + 0x30]
lea eax, [edi + eax*4]
push eax
call dword [0x102aba44]
mov edi, dword [0x102ab9d0]
push 1
push 0x102b8d2c
mov byte [esp + 0x300], 0x13
call edi
add esp, 8
mov dword [esp + 0x90], eax
push 1
lea eax, [esp + 0x94]
mov byte [esp + 0x2fc], 0x14
push eax
lea ecx, [esp + 0x38]
call dword [0x102ab824]
lea ecx, [esp + 0x90]
mov byte [esp + 0x17], al
mov byte [esp + 0x2f8], 0x13
call dword [0x102aba64]
cmp byte [esp + 0x17], 0
je 0x10173908
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x34]
call dword [0x102ab9f4]
mov ecx, eax
mov byte [esp + 0x2f8], 0x15
call dword [0x102aba24]
inc eax
push eax
lea eax, [esp + 0x1e0]
push 0x100
push eax
call dword [0x102ab144]
add esp, 0xc
mov byte [esp + 0x2f8], 0x13
lea ecx, [esp + 0x64]
call dword [0x102aba30]
call dword [0x102ad49c]
lea ecx, [esp + 0x1dc]
push ecx
mov eax, dword [eax + 0x10]
call eax
add esp, 4
mov dword [esp + 0x58], eax
jmp 0x10173acd
mov esi, dword [esp + 0x58]
test esi, esi
je 0x10173acd
push 0
push 0x102adb08
call edi
mov dword [esp + 0x90], eax
push 1
push 0x102b8ce0
mov byte [esp + 0x308], 0x16
call edi
add esp, 0x10
mov dword [esp + 0x84], eax
push 1
lea eax, [esp + 0x8c]
mov byte [esp + 0x2fc], 0x17
push eax
lea eax, [esp + 0x8c]
push eax
lea ecx, [esp + 0x3c]
call dword [0x102ab8d8]
push eax
lea ecx, [esp + 0x34]
call dword [0x102aba20]
lea ecx, [esp + 0x84]
mov byte [esp + 0x2f8], 0x16
call dword [0x102aba64]
lea ecx, [esp + 0x88]
mov byte [esp + 0x2f8], 0x13
call dword [0x102aba64]
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x34]
call dword [0x102ab9f4]
lea ecx, [esp + 0x5c]
mov byte [esp + 0x2f8], 0x18
push ecx
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0xcc]
push ecx
push str._llX:_X___X
mov ecx, eax
call dword [0x102aba24]
push eax
call dword [0x102ab140]
add esp, 0x14
mov byte [esp + 0x2f8], 0x13
cmp eax, 3
lea ecx, [esp + 0x54]
setne byte [esp + 0x17]
call dword [0x102aba30]
cmp byte [esp + 0x17], 0
jne 0x10173b01
mov eax, dword [esp + 0xc4]
and dword [esp + 0x38], 0xff
add eax, esi
and dword [esp + 0x5c], 0xff
push eax
mov dword [esp + 0x2e0], eax
call dword [0x102ad4ac]
add esp, 4
test al, al
je 0x10173acd
push 1
lea eax, [esp + 0x2b]
mov byte [esp + 0x2b], 0
push eax
push dword [esp + 0x2e4]
call dword [0x102ad490]
movzx eax, byte [esp + 0x33]
add esp, 0xc
mov edx, dword [esp + 0x5c]
cmp eax, edx
sete cl
cmp eax, dword [esp + 0x38]
mov byte [esp + 0x49], cl
setne al
mov byte [esp + 0x48], al
test cl, cl
je 0x10173a73
mov byte [esp + 0x1f], 1
jmp 0x10173a88
mov ecx, dword [esp + 0x74]
test al, al
movzx ecx, cl
mov eax, 1
cmovne ecx, eax
mov dword [esp + 0x74], ecx
mov eax, dword [esp + 0x38]
lea esi, [esp + 0x1dc]
mov byte [esp + 0x2e0], al
lea edi, [esp + 0xcc]
mov ax, word [esp + 0x48]
mov ecx, 0x42
mov byte [esp + 0x2e1], dl
rep movsd dword es:[edi], dword [esi]
mov word [esp + 0x1d4], ax
lea ecx, [esp + 0x18]
lea eax, [esp + 0xcc]
push eax
call fcn.101710c0
lea ecx, [esp + 0x30]
mov byte [esp + 0x2f8], 0x10
call dword [0x102aba64]
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
inc edx
mov dword [esp + 0x3c], edx
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
sub eax, ecx
cmp edx, eax
jl 0x10173830
jmp 0x10173b81
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x30]
push str.Patch_file_format_is_incorrect...
push eax
call fcn.10177230
mov esi, eax
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x4c]
mov byte [esp + 0x310], 0x19
push str.Error_
push eax
call fcn.10177230
push esi
push eax
push dword [esp + 0x68]
mov byte [esp + 0x324], 0x1a
call fcn.101b2480
add esp, 0x2c
mov byte [esp + 0x2f8], 0x19
lea ecx, [esp + 0x34]
call dword [0x102aba64]
lea ecx, [esp + 0x28]
mov byte [esp + 0x2f8], 0x13
call dword [0x102aba64]
lea ecx, [esp + 0x30]
mov byte [esp + 0x2f8], 0x10
call dword [0x102aba64]
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x70]
mov eax, dword [edi]
mov byte [esp + 0x2f8], 0xb
test eax, eax
je 0x10173baa
cmp eax, 0xffffffff
je 0x10173bf1
or eax, 0xffffffff
lock xadd dword [edi], eax
setne al
test al, al
jne 0x10173bf1
mov edi, dword [esp + 0x44]
mov eax, dword [edi + 0xc]
add eax, 4
lea ecx, [edi + eax*4]
mov eax, dword [edi + 8]
add eax, 4
mov dword [esp + 0x3c], ecx
lea eax, [edi + eax*4]
mov dword [esp + 0x58], eax
cmp eax, ecx
je 0x10173be7
mov esi, ecx
mov ebx, eax
lea esp, [esp]
sub esi, 4
mov ecx, esi
call dword [0x102aba64]
cmp esi, ebx
jne 0x10173bd0
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x70]
push edi
call dword [0x102aba60]
add esp, 4
lea ecx, [esp + 0x50]
mov byte [esp + 0x2f8], 0xa
call dword [0x102aba64]
lea ecx, [esp + 0xbc]
mov byte [esp + 0x2f8], 9
call dword [0x102ab784]
lea ecx, [esp + 0x94]
mov byte [esp + 0x2f8], 8
call dword [0x102ab95c]
lea ecx, [esp + 0x6c]
mov byte [esp + 0x2f8], 7
call dword [0x102aba64]
mov edi, dword [0x102ab9d0]
add ebx, 4
mov dword [esp + 0x20], ebx
cmp ebx, esi
jne 0x10173630
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xc]
sub ecx, dword [eax + 8]
jne 0x10173cc0
push 0xffffffffffffffff
push ecx
lea eax, [esp + 0x3c]
push str.No_patches_to_apply_in_the_current_process.
push eax
call fcn.10177230
mov esi, eax
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x40]
mov byte [esp + 0x310], 0x1b
push str.Information
push eax
call fcn.10177230
push esi
push eax
push dword [esp + 0x68]
mov byte [esp + 0x324], 0x1c
call fcn.101b2570
add esp, 0x2c
mov byte [esp + 0x2f8], 0x1b
lea ecx, [esp + 0x28]
call dword [0x102aba64]
lea ecx, [esp + 0x34]
jmp 0x101740e1
mov edi, dword [0x102ad0c4]
xor bl, bl
mov dword [esp + 0x3c], ebx
cmp byte [esp + 0x1f], bl
je 0x10173e05
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x3c]
push str.Some_patches_are_already_applied._n_nDo_you_want_to_remove_these_patches_
push eax
call fcn.10177230
mov esi, eax
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x40]
mov byte [esp + 0x310], 0x1d
push str.Question
push eax
call fcn.10177230
add esp, 0x20
push 0x103
push 0
push 0x14000
push esi
push eax
push 4
lea ecx, [esp + 0xb4]
mov byte [esp + 0x310], 0x1e
call edi
lea ecx, [esp + 0x28]
mov byte [esp + 0x2f8], 0x20
call dword [0x102aba64]
lea ecx, [esp + 0x34]
mov byte [esp + 0x2f8], 0x21
call dword [0x102aba64]
push 0xc
push str.question.png
call dword [0x102ab9d0]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
mov byte [esp + 0x300], 0x22
push eax
call fcn.1016fe80
add esp, 0xc
lea ecx, [esp + 0x9c]
push eax
call dword [0x102ad234]
lea ecx, [esp + 0x20]
mov byte [esp + 0x2f8], 0x21
call dword [0x102aba64]
push ecx
mov eax, esp
lea ecx, [esp + 0xa0]
push dword [esp + 0x44]
mov dword [eax], 3
call dword [0x102acda8]
mov eax, dword [esp + 0xb0]
lea ecx, [esp + 0x9c]
mov eax, dword [eax + 8]
and eax, 0xfffeffff
push eax
call dword [0x102ad144]
lea ecx, [esp + 0x9c]
call dword [0x102ad1d4]
cmp eax, 0x4000
movzx ebx, bl
mov eax, 1
mov byte [esp + 0x2f8], 7
cmove ebx, eax
lea ecx, [esp + 0x9c]
mov dword [esp + 0x3c], ebx
call dword [0x102ad0c0]
mov eax, dword [esp + 0x18]
xor bl, bl
mov dword [esp + 0x20], ebx
cmp byte [esp + 0x74], bl
je 0x10173f44
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x3c]
push str.Some_bytes_do_not_match_the_original_in_the_patch_file._n_nDo_you_want_to_apply_these_patches_anyway_
push eax
call fcn.10177230
mov esi, eax
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x40]
mov byte [esp + 0x310], 0x23
push str.Question
push eax
call fcn.10177230
add esp, 0x20
push 0x103
push 0
push 0x14000
push esi
push eax
push 4
lea ecx, [esp + 0xb4]
mov byte [esp + 0x310], 0x24
call edi
lea ecx, [esp + 0x28]
mov byte [esp + 0x2f8], 0x26
call dword [0x102aba64]
lea ecx, [esp + 0x34]
mov byte [esp + 0x2f8], 0x27
call dword [0x102aba64]
push 0xc
push str.question.png
call dword [0x102ab9d0]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
mov byte [esp + 0x300], 0x28
push eax
call fcn.1016ff60
add esp, 0xc
lea ecx, [esp + 0x9c]
push eax
call dword [0x102ad234]
lea ecx, [esp + 0x20]
mov byte [esp + 0x2f8], 0x27
call dword [0x102aba64]
push ecx
mov eax, esp
lea ecx, [esp + 0xa0]
push dword [esp + 0x44]
mov dword [eax], 3
call dword [0x102acda8]
mov eax, dword [esp + 0xb0]
lea ecx, [esp + 0x9c]
mov eax, dword [eax + 8]
and eax, 0xfffeffff
push eax
call dword [0x102ad144]
lea ecx, [esp + 0x9c]
call dword [0x102ad1d4]
cmp eax, 0x4000
movzx ebx, bl
mov eax, 1
mov byte [esp + 0x2f8], 7
cmove ebx, eax
lea ecx, [esp + 0x9c]
mov dword [esp + 0x20], ebx
call dword [0x102ad0c0]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xc]
xor ebx, ebx
mov edx, dword [eax + 8]
sub ecx, edx
test ecx, ecx
jle 0x10173fe8
cmp byte [esp + 0x20], 0
jne 0x10173f6d
lea ecx, [edx + ebx]
mov ecx, dword [eax + ecx*4 + 0x10]
cmp byte [ecx + 0x108], 0
jne 0x10173fd7
cmp byte [esp + 0x3c], 0
lea ecx, [edx + ebx]
lea esi, [eax + ecx*4]
mov ecx, 0x42
mov esi, dword [esi + 0x10]
lea edi, [esp + 0x1dc]
rep movsd dword es:[edi], dword [esi]
je 0x10173fac
mov ecx, dword [eax + 8]
add ecx, ebx
mov eax, dword [eax + ecx*4 + 0x10]
cmp byte [eax + 0x109], 0
je 0x10173fac
call dword [0x102ad49c]
lea ecx, [esp + 0x2e0]
jmp 0x10173fb9
call dword [0x102ad49c]
lea ecx, [esp + 0x2e1]
mov eax, dword [eax + 0x24]
push 1
push ecx
push dword [esp + 0x2e4]
call eax
add esp, 0xc
test al, al
je 0x10173fd3
inc dword [esp + 0x4c]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xc]
inc ebx
mov edx, dword [eax + 8]
sub ecx, edx
cmp ebx, ecx
jl 0x10173f56
mov ebx, dword [esp + 0x40]
mov ecx, ebx
call fcn.10177260
call dword [0x102ad46c]
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x68]
push str._1__2_patch_es__applied_
push eax
call fcn.10177230
mov esi, eax
add esp, 0xc
mov byte [esp + 0x2c], 0x20
mov ecx, esp
mov byte [esp + 0x2fc], 0x29
push dword [esp + 0x2c]
call dword [0x102aba38]
push 0xa
push 0
push dword [esp + 0x58]
lea eax, [esp + 0x74]
mov ecx, esi
push eax
call dword [0x102aba18]
mov edi, eax
mov ecx, dword [esp + 0x18]
push ecx
mov byte [esp + 0x2c], 0x20
mov byte [esp + 0x2fc], 0x2a
mov esi, dword [ecx + 0xc]
sub esi, dword [ecx + 8]
mov ecx, esp
push dword [esp + 0x2c]
call dword [0x102aba38]
push 0xa
push 0
push esi
lea eax, [esp + 0x64]
mov ecx, edi
push eax
call dword [0x102aba18]
mov esi, eax
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x3c]
mov byte [esp + 0x300], 0x2b
push str.Information
push eax
call fcn.10177230
push esi
push eax
push ebx
mov byte [esp + 0x314], 0x2c
call fcn.101b2570
add esp, 0x1c
mov byte [esp + 0x2f8], 0x2b
lea ecx, [esp + 0x34]
call dword [0x102aba64]
lea ecx, [esp + 0x54]
mov byte [esp + 0x2f8], 0x2a
call dword [0x102aba64]
lea ecx, [esp + 0x64]
mov byte [esp + 0x2f8], 0x29
call dword [0x102aba64]
lea ecx, [esp + 0x60]
mov byte [esp + 0x2f8], 7
call dword [0x102aba64]
mov eax, dword [esp + 0x18]
or ebx, 0xffffffff
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x38], eax
mov ecx, dword [eax]
mov byte [esp + 0x2f8], 6
test ecx, ecx
je 0x10174126
cmp ecx, 0xffffffff
je 0x10174164
mov ecx, ebx
lock xadd dword [eax], ecx
setne al
test al, al
jne 0x10174160
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov esi, dword [eax + 0xc]
mov edi, dword [eax + 8]
add esi, 4
add edi, 4
lea esi, [eax + esi*4]
lea edi, [eax + edi*4]
cmp edi, esi
je 0x10174156
lea esp, [esp]
push dword [esi - 4]
sub esi, 4
call fcn.1025720c
add esp, 4
cmp esi, edi
jne 0x10174140
mov eax, dword [esp + 0x38]
push eax
call dword [0x102aba60]
add esp, 4
mov esi, dword [esp + 0x2c]
mov eax, dword [esi]
mov dword [esp + 0x2f8], 0xffffffff
test eax, eax
je 0x1017418a
cmp eax, 0xffffffff
je 0x101741b9
lock xadd dword [esi], ebx
dec ebx
setne al
test al, al
jne 0x101741b9
mov esi, dword [esp + 0x2c]
mov edi, dword [esi + 0xc]
mov ebx, dword [esi + 8]
add edi, 4
add ebx, 4
lea edi, [esi + edi*4]
lea ebx, [esi + ebx*4]
cmp ebx, edi
je 0x101741af
sub edi, 4
mov ecx, edi
call dword [0x102aba64]
cmp edi, ebx
jne 0x101741a0
push esi
call dword [0x102aba60]
add esp, 4
mov ecx, dword [esp + 0x2f0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2d8]
xor ecx, esp
call fcn.10257318
mov esp, ebp
pop ebp
ret