Function at 0x415df0
Capabilities:
Contain obfuscated stackstrings
Get common file path
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cfd18
mov eax, dword fs:[0]
push eax
sub esp, 0x36c
mov eax, dword [0x539c80]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, ecx
mov dword [ebp - 0x34c], ebx
mov dword [ebp - 0x370], ebx
mov ecx, dword [ebx + 0x78]
cmp dword [ecx - 0xc], 0
je 0x416c35
add ecx, 0xfffffff0
call fcn.00402720
add eax, 0x10
mov dword [ebp - 0x33c], eax
mov dword [ebp - 4], 1
push dword [ebx + 0x4c]
push ecx
mov ecx, esp
mov dword [ebp - 0x330], esp
push str.2810121e030c1a172e
call fcn.00402400
mov byte [ebp - 4], 2
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x32c]
call fcn.00422560
add esp, 4
mov byte [ebp - 4], 3
push dword [eax]
lea ecx, [ebp - 0x33c]
call fcn.0040ed20
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x32c]
add edx, 0xfffffff0
lea ecx, [edx + 0xc]
or edi, 0xffffffff
mov eax, edi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x415eb7
mov ecx, dword [edx]
mov eax, dword [ecx]
push edx
call dword [eax + 4]
lea ecx, [ebp - 0x348]
call fcn.00421100
mov esi, eax
mov byte [ebp - 4], 5
push 0x5165a8
lea ecx, [ebp - 0x344]
call fcn.00402400
mov byte [ebp - 4], 6
push 0x516504
mov edx, eax
lea ecx, [ebp - 0x354]
call fcn.00417c70
mov byte [ebp - 4], 7
push esi
mov edx, eax
lea ecx, [ebp - 0x32c]
call fcn.0040f0c0
add esp, 8
mov byte [ebp - 4], 8
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
lea ecx, [ebp - 0x33c]
call fcn.0040fda0
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x32c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x415f3b
mov ecx, dword [edx]
mov eax, dword [ecx]
push edx
call dword [eax + 4]
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x354]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x415f5e
mov ecx, dword [edx]
mov eax, dword [ecx]
push edx
call dword [eax + 4]
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x344]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x415f81
mov ecx, dword [edx]
mov eax, dword [ecx]
push edx
call dword [eax + 4]
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x348]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x415fa4
mov ecx, dword [edx]
mov eax, dword [ecx]
push edx
call dword [eax + 4]
mov ecx, 0x5396d8
mov eax, dword [0x5396d8]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x340], eax
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0x340]
push eax
lea edx, [ebp - 0x33c]
lea ecx, [ebp - 0x338]
call fcn.00425b90
add esp, 4
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x32c]
call fcn.00422b40
mov byte [ebp - 4], 0x10
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
jne 0x416003
push 0x80004005
call fcn.00401a60
mov eax, dword [ebp - 0x338]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x416036
test dx, dx
je 0x416032
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x416036
add eax, 4
add ecx, 4
test dx, dx
jne 0x416010
xor eax, eax
jmp 0x41603b
sbb eax, eax
or eax, 1
test eax, eax
sete byte [ebp - 0x359]
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x32c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x416067
mov ecx, dword [edx]
mov eax, dword [ecx]
push edx
call dword [eax + 4]
cmp byte [ebp - 0x359], 0
je 0x4161f9
lea eax, [ebp - 0x340]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x370], esp
push str.103b3630381226273c06233732273606213f0c1b272723013622263620270c
call fcn.00402400
mov byte [ebp - 4], 0x12
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x348]
call fcn.00422560
add esp, 4
mov esi, eax
mov byte [ebp - 4], 0x13
mov ecx, 0x5396d8
mov edx, dword [0x5396d8]
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x354], eax
mov byte [ebp - 4], 0x15
push esi
lea edx, [ebp - 0x354]
lea ecx, [ebp - 0x344]
call fcn.0041c910
add esp, 4
mov byte [ebp - 4], 0x16
mov edx, eax
lea ecx, [ebp - 0x32c]
call fcn.0041c910
add esp, 4
mov byte [ebp - 4], 0x17
push eax
mov ecx, ebx
call fcn.00414720
mov byte [ebp - 4], 0x16
mov edx, dword [ebp - 0x32c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41611d
mov ecx, dword [edx]
mov eax, dword [ecx]
push edx
call dword [eax + 4]
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x344]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x416140
mov ecx, dword [edx]
mov eax, dword [ecx]
push edx
call dword [eax + 4]
mov byte [ebp - 4], 0x13
mov edx, dword [ebp - 0x354]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x416163
mov ecx, dword [edx]
mov eax, dword [ecx]
push edx
call dword [eax + 4]
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x348]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x416186
mov ecx, dword [edx]
mov eax, dword [ecx]
push edx
call dword [eax + 4]
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x338]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4161a9
mov ecx, dword [edx]
mov eax, dword [ecx]
push edx
call dword [eax + 4]
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x340]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4161cc
mov ecx, dword [edx]
mov eax, dword [ecx]
push edx
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x33c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x416c35
mov ecx, dword [edx]
mov eax, dword [ecx]
push edx
call dword [eax + 4]
jmp 0x416c35
mov eax, dword [ebp - 0x338]
cmp dword [eax - 0xc], 0
jne 0x416328
push ecx
mov ecx, esp
mov dword [ebp - 0x370], esp
push str.103b3630381226273c06233732273606213f0c20272119203c3d0c363e23272a
call fcn.00402400
mov byte [ebp - 4], 0x1f
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x344]
call fcn.00422560
add esp, 4
mov esi, eax
mov byte [ebp - 4], 0x20
mov ecx, 0x5396d8
mov edx, dword [0x5396d8]
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x354], eax
mov byte [ebp - 4], 0x22
push esi
lea edx, [ebp - 0x354]
lea ecx, [ebp - 0x32c]
call fcn.0041c910
add esp, 4
mov byte [ebp - 4], 0x23
push eax
mov ecx, ebx
call fcn.00414720
mov byte [ebp - 4], 0x22
mov edx, dword [ebp - 0x32c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x416297
mov ecx, dword [edx]
mov eax, dword [ecx]
push edx
call dword [eax + 4]
mov byte [ebp - 4], 0x20
mov edx, dword [ebp - 0x354]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4162ba
mov ecx, dword [edx]
mov eax, dword [ecx]
push edx
call dword [eax + 4]
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x344]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4162dd
mov ecx, dword [edx]
mov eax, dword [ecx]
push edx
call dword [eax + 4]
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x338]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x416300
mov ecx, dword [edx]
mov eax, dword [ecx]
push edx
call dword [eax + 4]
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x340]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x416323
mov ecx, dword [edx]
mov eax, dword [ecx]
push edx
call dword [eax + 4]
jmp 0x4161cc
mov byte [ebp - 4], 0x2a
lea eax, [ebp - 0x2b4]
mov dword [ebp - 0x2b8], eax
push 3
push dword [ebp - 0x338]
lea ecx, [ebp - 0x2b8]
call fcn.004182b0
mov byte [ebp - 4], 0x2b
push dword [ebp - 0x2b8]
lea ecx, [ebp - 0x234]
call fcn.00401470
mov byte [ebp - 4], 0x2c
lea ecx, [ebp - 0x328]
call fcn.00429df0
mov byte [ebp - 4], 0x2d
push 0
lea ecx, [ebp - 0x36c]
call fcn.0042dd10
mov byte [ebp - 4], 0x2e
push ecx
lea eax, [ebp - 0x36c]
push eax
lea eax, [ebp - 0x234]
push eax
lea ecx, [ebp - 0x328]
call fcn.00429e90
test al, al
jne 0x4164f0
mov esi, dword [0x53ed90]
lea eax, [esi + 1]
imul eax, esi
cdq
mov ecx, 0x12
idiv ecx
cmp edx, 8
jne 0x416415
xor edi, edi
mov dword [ebp - 0x374], edi
jmp 0x4163d0
mov eax, 0x36406c81
imul esi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0x97
mov eax, esi
sub eax, ecx
cmp eax, 0xdd
je 0x41640f
mov eax, esi
or eax, 0xfffffffc
add esi, eax
mov dword [0x53ed90], esi
inc edi
mov dword [ebp - 0x374], edi
mov eax, esi
imul eax, esi
cmp edi, eax
jle 0x4163d0
mov dword [0x53ed90], edi
push ecx
mov ecx, esp
mov dword [ebp - 0x34c], esp
push str.103b3630381226273c06233732273606213f0c23322120360c3621213c21
call fcn.00402400
mov byte [ebp - 4], 0x2f
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x330]
call fcn.00422560
add esp, 4
mov esi, eax
mov byte [ebp - 4], 0x30
lea ecx, [ebp - 0x334]
call fcn.004023a0
mov byte [ebp - 4], 0x31
push esi
mov edx, eax
lea ecx, [ebp - 0x32c]
call fcn.0041c910
add esp, 4
mov byte [ebp - 4], 0x32
push eax
mov ecx, ebx
call fcn.00414720
mov byte [ebp - 4], 0x31
lea ecx, [ebp - 0x32c]
call fcn.004024b0
mov byte [ebp - 4], 0x30
lea ecx, [ebp - 0x334]
call fcn.004024b0
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x330]
call fcn.004024b0
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x36c]
call fcn.0042e0c0
mov byte [ebp - 4], 0x2c
lea ecx, [ebp - 0x328]
call fcn.00416d60
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0x234]
call fcn.004014d0
mov byte [ebp - 4], 0x2a
lea ecx, [ebp - 0x2b4]
mov eax, dword [ebp - 0x2b8]
cmp eax, ecx
je 0x416c05
push eax
call fcn.004ad114
add esp, 4
jmp 0x416c05
push 0x51650c
lea ecx, [ebp - 0x32c]
call fcn.004033d0
mov byte [ebp - 4], 0x33
lea edx, [ebp - 0x32c]
lea ecx, [ebp - 0x334]
call fcn.00421a40
mov byte [ebp - 4], 0x34
push dword [eax]
lea ecx, [ebp - 0x330]
call fcn.00417970
mov byte [ebp - 4], 0x35
push ecx
push dword [eax]
lea ecx, [ebp - 0x36c]
call fcn.0042eb90
cmp byte [eax + 8], 4
setne bl
mov byte [ebp - 4], 0x34
lea ecx, [ebp - 0x330]
call fcn.004024b0
mov byte [ebp - 4], 0x33
lea ecx, [ebp - 0x334]
call fcn.004024b0
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x32c]
call fcn.004024b0
test bl, bl
jne 0x41649d
push str._L_update_low_ver
lea ecx, [ebp - 0x32c]
call fcn.004033d0
mov byte [ebp - 4], 0x36
lea edx, [ebp - 0x32c]
lea ecx, [ebp - 0x334]
call fcn.00421a40
mov byte [ebp - 4], 0x37
push dword [eax]
lea ecx, [ebp - 0x330]
call fcn.00417970
mov byte [ebp - 4], 0x38
push ecx
push dword [eax]
lea ecx, [ebp - 0x36c]
call fcn.0042eb90
push dword [eax]
lea ecx, [ebp - 0x350]
call fcn.004033d0
mov byte [ebp - 4], 0x3a
lea ecx, [ebp - 0x330]
call fcn.004024b0
mov byte [ebp - 4], 0x3b
lea ecx, [ebp - 0x334]
call fcn.004024b0
mov byte [ebp - 4], 0x3c
lea ecx, [ebp - 0x32c]
call fcn.004024b0
mov eax, dword [ebp - 0x350]
cmp dword [eax - 0xc], 0
jne 0x416611
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x350]
jmp 0x416498
push ecx
push 0x516750
lea ecx, [ebp - 0x36c]
call fcn.0042eb90
cmp byte [eax + 8], 4
je 0x416637
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x350]
jmp 0x416498
push ecx
push str.update_high_ver
lea ecx, [ebp - 0x36c]
call fcn.0042eb90
push dword [eax]
lea ecx, [ebp - 0x348]
call fcn.004033d0
mov byte [ebp - 4], 0x3d
mov eax, dword [ebp - 0x348]
cmp dword [eax - 0xc], 0
jne 0x4166ac
mov edx, dword [0x53ed90]
lea ecx, [edx + 1]
mov eax, ecx
imul eax, ecx
imul eax, edx
imul eax, edx
and eax, 0x80000003
jns 0x416685
dec eax
or eax, 0xfffffffc
inc eax
cmovne edx, ecx
mov dword [0x53ed90], edx
mov byte [ebp - 4], 0x3c
lea ecx, [ebp - 0x348]
call fcn.004024b0
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x350]
jmp 0x416498
push 0x516770
lea ecx, [ebp - 0x32c]
call fcn.004033d0
mov byte [ebp - 4], 0x3e
lea edx, [ebp - 0x32c]
lea ecx, [ebp - 0x334]
call fcn.00421a40
mov byte [ebp - 4], 0x3f
push dword [eax]
lea ecx, [ebp - 0x330]
call fcn.00417970
mov byte [ebp - 4], 0x40
push ecx
push dword [eax]
lea ecx, [ebp - 0x36c]
call fcn.0042eb90
cmp byte [eax + 8], 4
setne bl
mov byte [ebp - 4], 0x3f
lea ecx, [ebp - 0x330]
call fcn.004024b0
mov byte [ebp - 4], 0x3e
lea ecx, [ebp - 0x334]
call fcn.004024b0
mov byte [ebp - 4], 0x3d
lea ecx, [ebp - 0x32c]
call fcn.004024b0
test bl, bl
jne 0x41668e
push str._L_download_url
lea ecx, [ebp - 0x32c]
call fcn.004033d0
mov byte [ebp - 4], 0x41
lea edx, [ebp - 0x32c]
lea ecx, [ebp - 0x334]
call fcn.00421a40
mov byte [ebp - 4], 0x42
push dword [eax]
lea ecx, [ebp - 0x330]
call fcn.00417970
mov byte [ebp - 4], 0x43
push ecx
push dword [eax]
lea ecx, [ebp - 0x36c]
call fcn.0042eb90
push dword [eax]
lea ecx, [ebp - 0x358]
call fcn.004033d0
mov byte [ebp - 4], 0x45
lea ecx, [ebp - 0x330]
call fcn.004024b0
mov byte [ebp - 4], 0x46
lea ecx, [ebp - 0x334]
call fcn.004024b0
mov byte [ebp - 4], 0x47
lea ecx, [ebp - 0x32c]
call fcn.004024b0
mov eax, dword [0x53ed90]
imul eax, eax
cdq
mov esi, 0x14
idiv esi
cmp edx, 0xc
jne 0x4167d2
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x53ed90], eax
mov eax, dword [ebp - 0x358]
cmp dword [eax - 0xc], 0
jne 0x4167f2
mov byte [ebp - 4], 0x3d
lea ecx, [ebp - 0x358]
call fcn.004024b0
jmp 0x41668e
push ecx
mov ecx, esp
mov dword [ebp - 0x330], esp
lea eax, [ebp - 0x348]
push eax
call fcn.00403370
mov byte [ebp - 4], 0x48
push ecx
mov ecx, esp
mov dword [ebp - 0x334], esp
lea eax, [ebp - 0x350]
push eax
call fcn.00403370
mov byte [ebp - 4], 0x49
mov byte [ebp - 4], 0x47
mov edi, dword [ebp - 0x34c]
mov ecx, edi
call fcn.00416ed0
test al, al
jne 0x41684d
mov byte [ebp - 4], 0x3d
lea ecx, [ebp - 0x358]
call fcn.004024b0
jmp 0x41668e
mov edx, 0x516798
lea ecx, [ebp - 0x358]
call fcn.00417e80
test al, al
jne 0x416c5b
mov edx, 0x5167a0
lea ecx, [ebp - 0x358]
call fcn.00417e80
test al, al
jne 0x416c5b
xor eax, eax
mov word [ebp - 0x21c], ax
push 0x206
push eax
lea eax, [ebp - 0x21a]
push eax
call fcn.004b1a50
add esp, 0xc
lea eax, [ebp - 0x21c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x416951
push ecx
mov ecx, esp
mov dword [ebp - 0x32c], esp
push 0x516840
call fcn.00402400
mov byte [ebp - 4], 0x4e
mov byte [ebp - 4], 0x47
lea ecx, [ebp - 0x334]
call fcn.00422560
add esp, 4
mov esi, eax
mov byte [ebp - 4], 0x4f
lea ecx, [ebp - 0x330]
call fcn.004023a0
mov byte [ebp - 4], 0x50
push esi
mov edx, eax
lea ecx, [ebp - 0x34c]
call fcn.0041c910
add esp, 4
mov byte [ebp - 4], 0x51
push eax
mov ecx, edi
call fcn.00414720
mov byte [ebp - 4], 0x50
lea ecx, [ebp - 0x34c]
call fcn.004024b0
mov byte [ebp - 4], 0x4f
lea ecx, [ebp - 0x330]
call fcn.004024b0
mov byte [ebp - 4], 0x47
lea ecx, [ebp - 0x334]
call fcn.004024b0
mov byte [ebp - 4], 0x3d
lea ecx, [ebp - 0x358]
call fcn.004024b0
jmp 0x41668e
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x344]
call fcn.00402400
mov byte [ebp - 4], 0x52
mov eax, dword [ebp - 0x344]
mov eax, dword [eax - 0xc]
dec eax
js 0x416c51
push eax
lea ecx, [ebp - 0x344]
call fcn.0040e650
cmp ax, 0x5c
je 0x4169e1
push str._L__
lea ecx, [ebp - 0x32c]
call fcn.00402400
mov byte [ebp - 4], 0x53
lea edx, [ebp - 0x32c]
lea ecx, [ebp - 0x34c]
call fcn.00421a40
mov byte [ebp - 4], 0x54
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
lea ecx, [ebp - 0x344]
call fcn.0040fda0
mov byte [ebp - 4], 0x53
lea ecx, [ebp - 0x34c]
call fcn.004024b0
mov byte [ebp - 4], 0x52
lea ecx, [ebp - 0x32c]
call fcn.004024b0
lea eax, [ebp - 0x344]
push eax
lea ecx, [ebp - 0x354]
call fcn.00403370
mov byte [ebp - 4], 0x55
lea ecx, [ebp - 0x34c]
call fcn.00421100
mov byte [ebp - 4], 0x56
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
lea ecx, [ebp - 0x344]
call fcn.0040fda0
mov byte [ebp - 4], 0x55
lea ecx, [ebp - 0x34c]
call fcn.004024b0
lea edx, [ebp - 0x344]
lea ecx, [ebp - 0x358]
call fcn.00425460
test al, al
jne 0x416b18
push ecx
mov ecx, esp
mov dword [ebp - 0x32c], esp
push str.103b3630381226273c06233732273606213f0c1b272723073c113a3d32212a153a3f3601362226362027
call fcn.00402400
mov byte [ebp - 4], 0x57
mov byte [ebp - 4], 0x55
lea ecx, [ebp - 0x334]
call fcn.00422560
add esp, 4
mov esi, eax
mov byte [ebp - 4], 0x58
lea ecx, [ebp - 0x330]
call fcn.004023a0
mov byte [ebp - 4], 0x59
push esi
mov edx, eax
lea ecx, [ebp - 0x34c]
call fcn.0041c910
add esp, 4
mov byte [ebp - 4], 0x5a
push eax
mov ecx, edi
call fcn.00414720
mov byte [ebp - 4], 0x59
lea ecx, [ebp - 0x34c]
call fcn.004024b0
mov byte [ebp - 4], 0x58
lea ecx, [ebp - 0x330]
call fcn.004024b0
mov byte [ebp - 4], 0x55
lea ecx, [ebp - 0x334]
call fcn.004024b0
call fcn.00411bf0
test al, al
jne 0x416afa
mov eax, 0xee
mov esi, 0xdd
mov dword [ebp - 0x378], esi
test eax, eax
je 0x416af3
test esi, esi
je 0x416af3
mov ecx, esi
cdq
idiv esi
mov esi, edx
mov eax, ecx
jmp 0x416ada
add eax, esi
mov dword [0x53ed90], eax
mov byte [ebp - 4], 0x52
lea ecx, [ebp - 0x354]
call fcn.004024b0
mov byte [ebp - 4], 0x47
lea ecx, [ebp - 0x344]
jmp 0x416938
lea eax, [ebp - 0x354]
push eax
lea eax, [ebp - 0x344]
push eax
mov ecx, edi
call fcn.00417130
mov ecx, dword [0x53ed90]
mov eax, ecx
imul eax, ecx
cdq
idiv esi
cmp edx, 3
jne 0x416b69
mov eax, ecx
sub eax, 0
je 0x416b5f
dec eax
je 0x416b53
inc ecx
mov dword [0x53ed90], ecx
jmp 0x416b69
mov dword [0x53ed90], 0
jmp 0x416b69
mov dword [0x53ed90], 2
mov byte [ebp - 4], 0x52
lea ecx, [ebp - 0x354]
call fcn.004024b0
mov byte [ebp - 4], 0x47
lea ecx, [ebp - 0x344]
call fcn.004024b0
mov byte [ebp - 4], 0x3d
lea ecx, [ebp - 0x358]
call fcn.004024b0
mov byte [ebp - 4], 0x3c
lea ecx, [ebp - 0x348]
call fcn.004024b0
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x350]
call fcn.004024b0
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x36c]
call fcn.0042e0c0
mov byte [ebp - 4], 0x2c
lea ecx, [ebp - 0x328]
call fcn.00416d60
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0x234]
call fcn.004014d0
mov byte [ebp - 4], 0x2a
lea ecx, [ebp - 0x2b4]
mov eax, dword [ebp - 0x2b8]
cmp eax, ecx
je 0x416bfe
push eax
call fcn.004ad114
add esp, 4
mov dword [ebp - 4], 0xf
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x338]
call fcn.004024b0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x340]
call fcn.004024b0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x33c]
call fcn.004024b0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004ac57a
mov esp, ebp
pop ebp
ret
push 0x80070057
call fcn.00401a60
push ecx
mov ecx, esp
mov dword [ebp - 0x32c], esp
push str.103b3630381226273c06233732273606213f0c26213f0c3d320c353c210c262337322736
call fcn.00402400
mov byte [ebp - 4], 0x4a
mov byte [ebp - 4], 0x47
lea ecx, [ebp - 0x334]
call fcn.00422560
add esp, 4
mov esi, eax
mov byte [ebp - 4], 0x4b
lea ecx, [ebp - 0x330]
call fcn.004023a0
mov byte [ebp - 4], 0x4c
push esi
mov edx, eax
lea ecx, [ebp - 0x34c]
call fcn.0041c910
add esp, 4
mov byte [ebp - 4], 0x4d
push eax
mov ecx, edi
call fcn.00414720
mov byte [ebp - 4], 0x4c
lea ecx, [ebp - 0x34c]
call fcn.004024b0
mov byte [ebp - 4], 0x4b
jmp 0x416923