Function at 0x51203c
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x2c
push 0
push 0
dec ecx
jne 0x512044
push ecx
push ebx
push esi
push edi
mov esi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x513319
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, esi
mov edx, dword [0x4a0a50]
call fcn.00403104
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x18]
push eax
mov ecx, 2
mov edx, 2
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 8]
call fcn.00404064
mov esi, dword [ebx + 0x530]
mov eax, esi
call fcn.00468fec
mov edx, eax
lea ecx, [ebp - 0x14]
mov eax, dword [esi + 0x118]
mov esi, dword [eax]
call dword [esi + 0xc]
mov edx, 1
mov eax, dword [ebp - 0x40]
call fcn.004a2664
mov eax, 0x537244
mov edx, dword [ebp - 0x40]
mov edx, dword [edx + 8]
call fcn.00403c38
lea eax, [ebp - 0x24]
call fcn.00403be4
mov eax, ebx
call fcn.0050c790
mov eax, dword [0x5350d8]
mov eax, dword [eax]
mov ax, word [eax + 0x38]
test ax, ax
je 0x5120f3
mov edx, dword [0x5350d8]
cmp ax, 0xffeb
jne 0x513228
mov ecx, dword [0x537224]
mov dl, 1
mov eax, dword [0x447ee8]
call fcn.00447f58
mov esi, eax
push 0
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x15c]
mov ecx, 0x513330
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x15c]
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.00448380
mov eax, dword [0x537330]
push eax
lea eax, [ebp - 0x15c]
mov ecx, 0x51333c
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x15c]
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.004484a0
mov dword [ebp - 0x48], eax
push 0
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x15c]
mov ecx, 0x513348
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x15c]
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.00448380
push 0
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x15c]
mov ecx, 0x513354
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x15c]
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.00448380
mov eax, 0x5372ac
mov edx, dword [ebp - 0x20]
call fcn.00403c38
push 0
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x160]
mov ecx, 0x513360
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x160]
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.00448380
mov edx, dword [ebp - 0x15c]
mov eax, 0x5372b4
call fcn.00403c38
push 0
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x160]
mov ecx, 0x51336c
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x160]
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.00448380
mov edx, dword [ebp - 0x15c]
mov eax, 0x5372b8
call fcn.00403c38
push 0
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x160]
mov ecx, 0x513378
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x160]
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.00448380
mov edx, dword [ebp - 0x15c]
mov eax, 0x5372bc
call fcn.00403c38
push 0
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x160]
mov ecx, 0x513384
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x160]
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.00448380
mov edx, dword [ebp - 0x15c]
mov eax, 0x5372c0
call fcn.00403c38
push 0
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x160]
mov ecx, 0x513390
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x160]
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.00448380
mov edx, dword [ebp - 0x15c]
mov eax, 0x537250
call fcn.00403c38
push 0
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x160]
mov ecx, 0x51339c
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x160]
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.00448380
mov edx, dword [ebp - 0x15c]
mov eax, 0x537258
call fcn.00403c38
mov eax, dword [ebp - 0x30]
mov edx, 0x5133a8
call fcn.00403f70
jne 0x512340
lea eax, [ebp - 4]
mov edx, dword [0x5372b4]
call fcn.00403c7c
mov eax, dword [ebp - 0x30]
mov edx, 0x5133b8
call fcn.00403f70
jne 0x51287a
mov eax, dword [ebx + 0x298]
add eax, 0x38
mov edx, 0x5133c8
call fcn.00403c38
mov eax, dword [ebx + 0x298]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax]
call dword [edx + 0x40]
mov eax, dword [ebx + 0x298]
mov eax, dword [eax + 0x30]
mov edx, dword [eax]
call dword [edx + 0x40]
mov eax, dword [ebx + 0x298]
mov eax, dword [eax + 0x2c]
mov edx, 0x5133ec
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebx + 0x298]
mov eax, dword [eax + 0x2c]
mov edx, 0x5133fc
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebx + 0x298]
mov eax, dword [eax + 0x2c]
mov edx, 0x51340c
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebx + 0x298]
mov eax, dword [eax + 0x30]
mov edx, 0x51341c
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebx + 0x298]
mov eax, dword [eax + 0x30]
mov edx, 0x513454
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebx + 0x298]
call fcn.004490a0
mov esi, eax
cmp esi, 2
jge 0x5132e3
lea eax, [ebp - 0x18]
push eax
mov ecx, 2
mov edx, 2
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 8]
call fcn.00404064
mov eax, dword [ebx + 0x2a8]
call fcn.0043d004
mov eax, dword [ebx + 0x2ac]
call fcn.0043d004
lea eax, [ebp - 0x1c]
call fcn.00403be4
lea eax, [ebp - 0x38]
call fcn.00403be4
mov eax, dword [ebp - 0x18]
call fcn.00407c14
mov edi, eax
jmp 0x5125c2
inc edi
lea edx, [ebp - 0x18]
mov eax, edi
call fcn.00407ba8
cmp edi, 0xa
jge 0x512475
lea edx, [ebp - 0x15c]
mov eax, edi
call fcn.00407ba8
mov ecx, dword [ebp - 0x15c]
lea eax, [ebp - 0x18]
mov edx, 0x513490
call fcn.00403eac
push 0
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x15c]
mov ecx, 0x513330
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x15c]
mov edx, dword [ebp - 0x14]
mov eax, ebx
call fcn.00508188
push 0
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x15c]
mov ecx, 0x513354
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x15c]
mov edx, dword [ebp - 0x14]
mov eax, ebx
call fcn.00508188
mov eax, dword [ebp - 4]
mov edx, 0x51349c
call fcn.00403f70
jne 0x5124de
lea eax, [ebp - 4]
call fcn.00403be4
cmp dword [ebp - 4], 0
je 0x512553
mov eax, dword [ebp - 0x30]
mov edx, 0x5134b8
call fcn.00403f70
je 0x512511
mov eax, dword [ebp - 0x30]
mov edx, 0x5134c4
call fcn.00403f70
je 0x512511
mov eax, dword [ebp - 0x30]
mov edx, 0x5133a8
call fcn.00403f70
jne 0x512553
lea eax, [ebp - 0x15c]
mov ecx, dword [ebp - 0x18]
mov edx, 0x5134d0
call fcn.00403eac
mov edx, dword [ebp - 0x15c]
mov eax, dword [ebx + 0x2a8]
mov eax, dword [eax + 0x118]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test esi, esi
jne 0x512553
mov eax, dword [ebx + 0x2ac]
mov eax, dword [eax + 0x118]
mov edx, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x34]
cmp dword [ebp - 4], 0
je 0x5125c2
mov eax, dword [ebp - 0x30]
mov edx, 0x5134b8
call fcn.00403f70
je 0x5125c2
mov eax, dword [ebp - 0x30]
mov edx, 0x5134c4
call fcn.00403f70
je 0x5125c2
mov eax, dword [ebp - 0x30]
mov edx, 0x5133a8
call fcn.00403f70
je 0x5125c2
cmp esi, 1
jne 0x51259f
mov eax, dword [ebx + 0x2ac]
mov eax, dword [eax + 0x118]
mov edx, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x34]
push dword [ebp - 0x38]
push dword [ebp - 0x1c]
push dword [ebp - 4]
lea eax, [ebp - 0x38]
mov edx, 3
call fcn.00403f20
lea eax, [ebp - 0x1c]
mov edx, 0x5134dc
call fcn.00403c7c
cmp dword [ebp - 4], 0
jne 0x512445
test esi, esi
jne 0x512654
mov eax, dword [ebx + 0x2a8]
mov eax, dword [eax + 0x118]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x512654
inc eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x4c], 0
lea ecx, [ebp - 0x15c]
mov eax, dword [ebx + 0x2a8]
mov eax, dword [eax + 0x118]
mov edx, dword [ebp - 0x4c]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x15c]
mov eax, 0x537244
call fcn.00403c38
lea ecx, [ebp - 0x15c]
mov eax, dword [ebx + 0x2ac]
mov eax, dword [eax + 0x118]
mov edx, dword [ebp - 0x4c]
mov edi, dword [eax]
call dword [edi + 0xc]
mov ecx, dword [ebp - 0x15c]
mov edx, dword [0x53723c]
mov eax, ebx
call fcn.00513748
inc dword [ebp - 0x4c]
dec dword [ebp - 0x58]
jne 0x5125f5
cmp dword [ebp - 0x38], 0
je 0x51266a
test esi, esi
jne 0x51266a
mov ecx, dword [ebp - 0x38]
xor edx, edx
mov eax, ebx
call fcn.00513748
cmp esi, 1
jne 0x51268e
mov eax, dword [ebx + 0x2ac]
mov eax, dword [eax + 0x118]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x51268e
mov eax, 0x5134e8
call fcn.00443584
dec esi
jne 0x51285f
mov eax, dword [ebx + 0x2ac]
mov eax, dword [eax + 0x118]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x51285f
cmp byte [0x53738e], 0
jne 0x5126cf
mov ecx, dword [0x534e50]
mov eax, dword [0x534f4c]
mov eax, dword [eax]
mov edx, dword [0x4ff3d8]
call fcn.00434018
push 0xf
mov ecx, 0x513524
mov edx, 0x513538
mov eax, ebx
call fcn.00507f78
mov esi, eax
mov eax, dword [0x534e50]
mov eax, dword [eax]
mov eax, dword [eax + 0x1e8]
mov edx, esi
call fcn.0046c40c
lea edx, [ebp - 0x15c]
mov eax, esi
call fcn.00407ba8
mov edx, dword [ebp - 0x15c]
mov eax, dword [0x534e50]
mov eax, dword [eax]
mov eax, dword [eax + 0x1e8]
add eax, 0x60
mov ecx, 0x51354c
call fcn.00403eac
mov eax, dword [ebx + 0x2dc]
mov al, byte [eax + 0xc0]
mov byte [ebp - 0x51], al
mov eax, dword [ebx + 0x3f4]
cmp byte [eax + 0x2c], 0
je 0x512747
mov dword [ebp - 0x50], 1
mov edx, dword [ebx + 0x210]
cmp byte [edx + 0x2c], 0
je 0x51275a
mov dword [ebp - 0x50], 2
mov edx, dword [ebx + 0x30c]
cmp byte [edx + 0x2c], 0
je 0x51276d
mov dword [ebp - 0x50], 3
mov edx, dword [ebx + 0x430]
cmp byte [edx + 0x2c], 0
je 0x512780
mov dword [ebp - 0x50], 4
xor edx, edx
call fcn.0042b468
xor edx, edx
mov eax, dword [ebx + 0x210]
call fcn.0042b468
xor edx, edx
mov eax, dword [ebx + 0x30c]
call fcn.0042b468
xor edx, edx
mov eax, dword [ebx + 0x430]
call fcn.0042b468
mov dl, 1
mov eax, dword [ebx + 0x2dc]
call fcn.004473b0
xor edx, edx
mov eax, dword [0x537218]
call fcn.0042fbc8
mov eax, dword [0x534e50]
mov eax, dword [eax]
call fcn.004321b4
mov eax, dword [0x534e50]
mov eax, dword [eax]
call fcn.0040301c
mov dl, 1
mov eax, dword [0x537218]
call fcn.0042fbc8
cmp dword [ebp - 0x50], 1
jne 0x5127fe
mov dl, 1
mov eax, dword [ebx + 0x3f4]
call fcn.0042b468
cmp dword [ebp - 0x50], 2
jne 0x512811
mov dl, 1
mov eax, dword [ebx + 0x210]
call fcn.0042b468
cmp dword [ebp - 0x50], 3
jne 0x512824
mov dl, 1
mov eax, dword [ebx + 0x30c]
call fcn.0042b468
cmp dword [ebp - 0x50], 4
jne 0x512837
mov dl, 1
mov eax, dword [ebx + 0x430]
call fcn.0042b468
mov dl, byte [ebp - 0x51]
mov eax, dword [ebx + 0x2dc]
call fcn.004473b0
mov eax, dword [0x537218]
call fcn.00423d54
mov edx, dword [ebx + 0x1e0]
mov eax, dword [0x537218]
call fcn.00430b14
mov eax, dword [ebx + 0x2a8]
call fcn.0043d004
mov eax, dword [ebx + 0x2ac]
call fcn.0043d004
jmp 0x5132e3
cmp dword [ebp - 4], 0
jne 0x5128d8
mov eax, dword [ebx + 0x420]
cmp byte [eax + 0x2c], 0
je 0x5128d8
lea eax, [ebp - 0x15c]
push eax
mov edx, dword [0x537224]
mov eax, 0x513560
call fcn.00404148
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [0x537224]
call fcn.00404064
lea eax, [ebp - 0x15c]
mov edx, 0x51356c
call fcn.00403e68
mov ecx, dword [ebp - 0x15c]
mov edx, dword [0x537224]
mov eax, ebx
call fcn.00507cc4
lea eax, [ebp - 0x2c]
mov edx, 0x5134b8
call fcn.00403c7c
cmp dword [ebp - 4], 0
jne 0x512b31
mov eax, dword [ebp - 0x2c]
mov edx, 0x5134b8
call fcn.00403f70
jne 0x512b31
mov eax, dword [ebp - 0x30]
mov edx, 0x5134b8
call fcn.00403f70
je 0x512b31
mov eax, dword [ebp - 0x30]
mov edx, 0x5134c4
call fcn.00403f70
je 0x512b31
mov eax, dword [ebp - 0x30]
mov edx, 0x5133a8
call fcn.00403f70
je 0x512b31
mov eax, dword [ebx + 0x2c4]
add eax, 0xb0
mov edx, dword [0x537248]
call fcn.00403c38
lea ecx, [ebp - 4]
lea edx, [ebp - 0x20]
mov eax, dword [ebx + 0x2c4]
call fcn.0044da74
cmp dword [ebp - 4], 0
je 0x512975
lea eax, [ebp - 0x2c]
mov edx, 0x51357c
call fcn.00403c7c
lea ecx, [ebp - 0x15c]
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.005104b0
mov edx, dword [ebp - 0x15c]
lea eax, [ebp - 4]
call fcn.00403c7c
mov eax, dword [ebx + 0x470]
cmp byte [eax + 0x2c], 0
je 0x5129c8
mov edx, 0x513588
mov eax, dword [0x537218]
call fcn.00423b94
mov eax, dword [0x5350d8]
mov eax, dword [eax]
mov dx, 0xfff5
call fcn.00432b2c
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.00526604
lea eax, [ebp - 0x15c]
push eax
mov ecx, 4
mov edx, 1
mov eax, dword [0x53723c]
call fcn.00404064
mov eax, dword [ebp - 0x15c]
mov edx, 0x5135b4
call fcn.00403f70
je 0x5132e3
mov eax, dword [ebp - 4]
push eax
lea eax, [ebp - 0x15c]
mov ecx, 0x513330
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x15c]
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.0044858c
mov eax, dword [ebx + 0x530]
call fcn.00468fec
mov edx, eax
lea ecx, [ebp - 0x15c]
mov eax, dword [ebx + 0x530]
mov eax, dword [eax + 0x118]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x15c]
mov eax, ebx
call fcn.0051fe14
test al, al
je 0x512aa3
lea eax, [ebp - 0x15c]
push eax
lea edx, [ebp - 0x160]
mov eax, ebx
call fcn.00520360
mov ecx, dword [ebp - 0x160]
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.0051f5f0
mov eax, dword [ebp - 0x15c]
push eax
lea eax, [ebp - 0x160]
mov ecx, 0x513330
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x160]
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.0044858c
mov eax, dword [ebp - 0x20]
push eax
lea eax, [ebp - 0x15c]
mov ecx, 0x513348
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x15c]
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.0044858c
mov eax, dword [ebp - 0x48]
cmp eax, dword [0x537330]
je 0x512afc
mov eax, dword [ebp - 0x48]
push eax
lea eax, [ebp - 0x15c]
mov ecx, 0x51333c
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x15c]
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.0044879c
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x40]
call fcn.00423b94
mov eax, dword [ebp - 0x40]
add eax, 0x60
mov edx, dword [ebp - 4]
call fcn.00403c38
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x50]
call fcn.0041822c
mov eax, ebx
call fcn.0052687c
mov eax, ebx
call fcn.0050c790
lea eax, [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.00403c7c
cmp dword [ebp - 4], 0
jne 0x512d2d
mov eax, dword [ebp - 0x30]
mov edx, 0x5134b8
call fcn.00403f70
jne 0x512d2d
lea eax, [ebp - 0x15c]
mov edx, dword [0x53722c]
mov dl, byte [edx]
call fcn.00403d88
lea eax, [ebp - 0x15c]
mov edx, 0x5135c4
call fcn.00403e68
mov edx, dword [ebp - 0x15c]
mov eax, dword [ebx + 0x2c8]
call fcn.004425f8
mov eax, dword [ebx + 0x2c8]
add eax, 0x64
mov edx, 0x5135d0
call fcn.00403c38
mov edi, dword [ebx + 0x2c8]
mov dword [edi + 0x2c], 0x1d
lea eax, [edi + 0x54]
mov edx, 0x5135f4
call fcn.00403c38
mov eax, dword [ebx + 0x2c8]
mov edx, dword [eax]
call dword [edx + 0x34]
test al, al
je 0x512d20
lea edx, [ebp - 0x15c]
mov eax, dword [ebx + 0x2c8]
call fcn.00442590
cmp dword [ebp - 0x15c], 0
jbe 0x512d20
lea edx, [ebp - 0x10]
mov eax, dword [ebx + 0x2c8]
call fcn.00442590
lea eax, [ebp - 8]
mov edx, dword [ebp - 0x10]
call fcn.00403c7c
lea edx, [ebp - 0x34]
mov eax, dword [ebp - 0x10]
call fcn.004081c8
lea edx, [ebp - 0x15c]
mov eax, dword [ebp - 0x34]
call fcn.00407858
mov eax, dword [ebp - 0x15c]
mov edx, 0x51361c
call fcn.00403f70
jne 0x512c60
mov ecx, dword [ebp - 0x10]
mov dl, 1
mov eax, dword [0x447ee8]
call fcn.00447f58
mov edi, eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 8]
push eax
mov ecx, 0x51362c
mov edx, 0x513638
mov eax, edi
call fcn.00448380
mov eax, edi
call fcn.0040301c
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x18]
push eax
lea eax, [ebp - 0x15c]
push eax
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x40]
mov eax, ebx
call fcn.00522634
lea eax, [ebp - 0x15c]
push eax
lea edx, [ebp - 0x15c]
mov eax, dword [ebp - 0x10]
call fcn.00408190
mov eax, dword [ebp - 0x15c]
call fcn.00403e60
sub eax, 4
push eax
lea edx, [ebp - 0x160]
mov eax, dword [ebp - 0x10]
call fcn.00408190
mov eax, dword [ebp - 0x160]
mov edx, 1
pop ecx
call fcn.00404064
mov edx, dword [ebp - 0x15c]
mov eax, dword [ebp - 0x40]
call fcn.00423b94
mov eax, ebx
call fcn.0050c790
mov eax, dword [ebp - 0x40]
add eax, 0x60
mov edx, dword [ebp - 8]
call fcn.00403c38
cmp dword [ebp - 0x10], 0
je 0x512d20
lea edx, [ebp - 0x164]
mov eax, dword [ebp - 0x40]
call fcn.00423b64
mov eax, dword [ebp - 0x164]
push eax
lea eax, [ebp - 0x15c]
mov ecx, 0x513348
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x15c]
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.0044858c
lea eax, [ebp - 0x2c]
mov edx, 0x51357c
call fcn.00403c7c
cmp dword [ebp - 0x10], 0
je 0x512d76
mov eax, dword [ebp - 8]
push eax
lea eax, [ebp - 0x15c]
mov ecx, 0x513330
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x15c]
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.0044858c
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x18]
push eax
lea eax, [ebp - 0x15c]
push eax
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x40]
mov eax, ebx
call fcn.00522634
mov eax, dword [ebx + 0x530]
call fcn.00468fec
mov edx, eax
lea ecx, [ebp - 0x15c]
mov eax, dword [ebx + 0x530]
mov eax, dword [eax + 0x118]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x15c]
mov eax, ebx
call fcn.0051fe14
test al, al
je 0x512dff
cmp dword [ebp - 0x10], 0
je 0x512dff
lea eax, [ebp - 0x15c]
push eax
lea edx, [ebp - 0x160]
mov eax, ebx
call fcn.00520360
mov ecx, dword [ebp - 0x160]
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.0051f5f0
mov eax, dword [ebp - 0x15c]
push eax
lea eax, [ebp - 0x160]
mov ecx, 0x513330
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x160]
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.0044858c
mov eax, esi
call fcn.0040301c
cmp dword [ebp - 0x28], 0
jbe 0x512eeb
mov eax, dword [0x534f4c]
mov eax, dword [eax]
add eax, 0x34
mov ecx, 0x513654
mov edx, dword [0x53722c]
call fcn.00403eac
mov esi, dword [ebx + 0x28c]
mov dword [esi + 0x2c], 0x18
lea eax, [esi + 0x64]
mov edx, 0x513668
call fcn.00403c38
mov eax, dword [ebx + 0x28c]
add eax, 0x54
mov edx, 0x513680
call fcn.00403c38
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x28c]
call fcn.004425f8
lea eax, [ebp - 0xc]
call fcn.00403be4
mov eax, dword [ebx + 0x28c]
mov edx, dword [eax]
call dword [edx + 0x34]
test al, al
je 0x512eeb
lea edx, [ebp - 0x15c]
mov eax, dword [ebx + 0x28c]
call fcn.00442590
cmp dword [ebp - 0x15c], 0
jbe 0x512eeb
mov eax, dword [ebx + 0x28c]
mov eax, dword [eax + 0x70]
mov edx, dword [eax]
call dword [edx + 0x14]
mov dword [ebp - 0x44], eax
xor esi, esi
push dword [ebp - 0xc]
push 0x513698
lea ecx, [ebp - 0x15c]
mov eax, dword [ebx + 0x28c]
mov eax, dword [eax + 0x70]
mov edx, esi
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0x15c]
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00403f20
inc esi
cmp esi, dword [ebp - 0x44]
jne 0x512ea9
lea eax, [ebp - 8]
mov edx, dword [ebp - 0xc]
call fcn.00403c7c
cmp dword [ebp - 0x28], 0
jbe 0x512eff
cmp dword [ebp - 0xc], 0
jne 0x512eff
lea eax, [ebp - 8]
call fcn.00403be4
cmp dword [ebp - 8], 0
je 0x513228
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x60]
mov edx, 0x5136a4
call fcn.00403f70
jne 0x513005
cmp byte [0x537378], 0
jne 0x512f40
mov ecx, dword [0x53510c]
mov eax, dword [0x534f4c]
mov eax, dword [eax]
mov edx, dword [0x4e8350]
call fcn.00434018
mov eax, dword [0x53510c]
mov eax, dword [eax]
mov eax, dword [eax + 0x1dc]
mov dl, 0x2a
call fcn.0043a2cc
mov eax, dword [0x53510c]
mov eax, dword [eax]
call fcn.004321b4
mov eax, dword [0x53510c]
mov eax, dword [eax]
mov eax, dword [eax + 0x1dc]
xor edx, edx
call fcn.0043a2cc
mov eax, dword [0x537288]
push eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov eax, ebx
call fcn.0051f86c
test al, al
jne 0x512fb2
cmp dword [0x537288], 0
je 0x5132e3
push 0
mov cx, word [0x5136b8]
mov dl, 2
mov eax, 0x5136c4
call fcn.004434a0
jmp 0x5132e3
test al, al
je 0x512ff2
push 0
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x160]
mov ecx, 0x513330
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x160]
mov edx, dword [ebp - 0x14]
mov eax, ebx
call fcn.00508188
mov edx, dword [ebp - 0x15c]
lea ecx, [ebp - 8]
mov eax, ebx
call fcn.0051f76c
mov eax, dword [0x53510c]
mov eax, dword [eax]
call fcn.0040301c
mov byte [0x537378], 0
mov esi, dword [ebx + 0x530]
mov eax, esi
call fcn.00468fec
mov edx, eax
lea ecx, [ebp - 0x15c]
mov eax, dword [esi + 0x118]
mov esi, dword [eax]
call dword [esi + 0xc]
mov edx, dword [ebp - 0x15c]
mov eax, ebx
call fcn.0051fe14
test al, al
je 0x513072
push 0
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x160]
mov ecx, 0x513330
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x160]
mov edx, dword [ebp - 0x14]
mov eax, ebx
call fcn.00508188
mov edx, dword [ebp - 0x15c]
lea ecx, [ebp - 8]
mov eax, ebx
call fcn.0051f76c
mov eax, 0x5372b0
mov edx, dword [ebp - 8]
call fcn.00403c38
push 0
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x160]
mov ecx, 0x513354
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x160]
mov edx, dword [ebp - 0x14]
mov eax, ebx
call fcn.00508188
mov eax, dword [ebp - 0x15c]
mov edx, 0x5136e0
call fcn.00403f70
jne 0x513127
push 0x5136ec
push 0
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x160]
mov ecx, 0x51336c
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x160]
mov edx, dword [ebp - 0x14]
mov eax, ebx
call fcn.00508188
push dword [ebp - 0x15c]
lea eax, [ebp - 0x160]
push eax
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00523fbc
mov edx, eax
mov ecx, 0xff
mov eax, dword [ebp - 8]
call fcn.00404064
push dword [ebp - 0x160]
lea eax, [ebp - 8]
mov edx, 3
call fcn.00403f20
mov eax, dword [ebp - 0x2c]
mov edx, 0x5134b8
call fcn.00403f70
jne 0x513228
mov eax, dword [ebp - 0x30]
mov edx, 0x5134c4
call fcn.00403f70
jne 0x5131a9
push 0xff
lea eax, [ebp - 0x158]
push eax
call sub.kernel32.dll_GetWindowsDirectoryA
lea edx, [ebp - 0x3c]
lea eax, [ebp - 0x158]
call fcn.00408534
mov eax, dword [ebx + 0x548]
cmp byte [eax + 0x2c], 0
je 0x513191
push dword [0x5372e0]
push 0x5136fc
push dword [ebp - 8]
lea eax, [ebp - 8]
mov edx, 3
call fcn.00403f20
jmp 0x5131a9
push dword [ebp - 0x3c]
push 0x513708
push dword [ebp - 8]
lea eax, [ebp - 8]
mov edx, 3
call fcn.00403f20
mov eax, dword [ebp - 0x30]
mov edx, 0x513728
call fcn.00403f70
je 0x5131c5
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x14]
mov eax, ebx
call fcn.00513748
mov eax, dword [ebp - 0x30]
mov edx, 0x513728
call fcn.00403f70
jne 0x513228
mov eax, dword [0x5372b4]
call fcn.00460448
test al, al
jne 0x5131f1
mov eax, 0x5372b4
mov edx, 0x513734
call fcn.00403c38
mov eax, dword [0x5372b4]
call fcn.004027e0
call fcn.004027a4
cmp byte [0x537382], 0
jne 0x513221
mov ecx, dword [0x534fec]
mov eax, dword [0x534f4c]
mov eax, dword [eax]
mov edx, dword [0x4f0374]
call fcn.00434018
mov eax, ebx
call fcn.0052b338
lea eax, [ebp - 0x15c]
push eax
push 0
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp - 0x15c]
mov ecx, 0x513330
mov edx, dword [ebp - 0x18]
call fcn.00403eac
mov ecx, dword [ebp - 0x15c]
mov edx, dword [ebp - 0x14]
mov eax, ebx
call fcn.00508188
mov eax, dword [ebp - 0x160]
mov ecx, 4
mov edx, 1
call fcn.00404064
mov eax, dword [ebp - 0x15c]
mov edx, 0x513740
call fcn.00403f70
jne 0x51329e
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x18]
push eax
lea eax, [ebp - 0x15c]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x40]
mov eax, ebx
call fcn.00522634
mov eax, dword [ebx + 0x398]
cmp byte [eax + 0x2c], 0
jne 0x5132c5
mov eax, dword [ebx + 0x394]
mov eax, dword [eax + 0xb8]
call fcn.0041b524
mov edx, eax
mov eax, dword [ebp - 0x40]
call fcn.004a2394
mov eax, dword [ebx + 0x2c0]
mov edx, dword [eax]
call dword [edx + 0x94]
mov edx, dword [ebx + 0x1e0]
mov eax, dword [0x537218]
call fcn.00430b14
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x513320
lea eax, [ebp - 0x164]
call fcn.00403be4
lea eax, [ebp - 0x160]
mov edx, 2
call fcn.00403c08
lea eax, [ebp - 0x3c]
mov edx, 0xf
call fcn.00403c08
ret