Function at 0x402990
Capabilities:
Check if file exists
Create directory
Get file attributes
Move file
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42ace8
mov eax, dword fs:[0]
push eax
sub esp, 0x194
mov eax, dword [0x439018]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x190], 1
xorps xmm0, xmm0
xor eax, eax
mov dword [ebp - 0x194], 0
movups xmmword [ebp - 0x11c], xmm0
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x108], 7
mov word [ebp - 0x11c], ax
mov dword [ebp - 4], eax
mov eax, dword fs:[0x2c]
mov dword [ebp - 0x19c], eax
mov dword [ebp - 0x1c], 0x6455b853
mov dword [ebp - 0x18], 0x4690eacd
mov esi, dword [eax]
mov eax, dword [0x43afa4]
mov dword [ebp - 0x14], 0x2a4c826e
mov dword [ebp - 0x1a0], esi
cmp eax, dword [esi + 4]
jle 0x402a7a
push 0x43afa4
call fcn.0040e152
add esp, 4
cmp dword [0x43afa4], 0xffffffff
jne 0x402a7a
movq xmm0, qword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
push 0x42bdf0
mov byte [0x43afb4], 1
movq qword [0x43afa8], xmm0
mov dword [0x43afb0], eax
call fcn.0040e3f2
push 0x43afa4
call fcn.0040e101
add esp, 8
mov ecx, 0x43afa8
call fcn.00406800
mov edx, 0x43afa8
call fcn.004077e0
push eax
call fcn.00407aa0
push eax
call fcn.00407aa0
lea eax, [ebp - 0x40]
push 0
push eax
call fcn.00409fe0
add esp, 0x10
mov byte [ebp - 4], 1
mov edi, dword [ebp - 0x30]
mov dword [ebp - 0x190], 1
test edi, edi
je 0x402b50
cmp dword [ebp - 0x2c], 8
lea edx, [ebp - 0x40]
lea eax, [edi - 1]
cmovae edx, dword [ebp - 0x40]
or ecx, 0xffffffff
cmp eax, ecx
cmovb ecx, eax
cmp word [edx + ecx*2], 0x5c
lea esi, [edx + ecx*2]
je 0x402aee
cmp esi, edx
je 0x402b3d
sub esi, 2
cmp word [esi], 0x5c
jne 0x402ae1
sub esi, edx
sar esi, 1
cmp esi, 0xffffffff
je 0x402b3d
cmp edi, esi
jb 0x404b89
mov eax, edi
mov ecx, 0xffffffff
sub eax, esi
cmp eax, 0xffffffff
cmovb ecx, eax
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
cmovae eax, dword [ebp - 0x40]
sub edi, ecx
lfence
lea edx, [eax + esi*2]
mov eax, edi
sub eax, esi
lea ecx, [edx + ecx*2]
lea eax, [eax*2 + 2]
push eax
push ecx
push edx
call fcn.0040f8f0
add esp, 0xc
mov dword [ebp - 0x30], edi
mov edx, 0x434c60
lea ecx, [ebp - 0x40]
call fcn.00409f00
mov esi, dword [ebp - 0x1a0]
mov dword [ebp - 4], 0
mov dword [ebp - 0x190], 0
mov byte [ebp - 4], 2
mov eax, dword [0x43afb8]
mov dword [ebp - 0x64], 0xa459d74
mov dword [ebp - 0x60], 0x228acaff
mov byte [ebp - 0x18b], 0x1b
cmp eax, dword [esi + 4]
jle 0x402bef
push 0x43afb8
call fcn.0040e152
add esp, 4
cmp dword [0x43afb8], 0xffffffff
jne 0x402bef
movaps xmm0, xmmword [0x434db0]
mov al, byte [ebp - 0x18b]
movups xmmword [0x43afbc], xmm0
push 0x42bdb0
movaps xmm0, xmmword [0x434e00]
movups xmmword [0x43afcc], xmm0
mov byte [0x43afe5], 1
movq xmm0, qword [ebp - 0x64]
movq qword [0x43afdc], xmm0
mov byte [0x43afe4], al
call fcn.0040e3f2
push 0x43afb8
call fcn.0040e101
add esp, 8
mov ecx, 0x43afbc
call fcn.004067a0
mov edx, 0x43afbc
mov ecx, 0x43a270
call fcn.00407b50
cmp dword [ebp - 0x2c], 8
lea edx, [ebp - 0x40]
push dword [ebp - 0x30]
cmovae edx, dword [ebp - 0x40]
mov ecx, eax
call fcn.004096b0
push eax
call fcn.00407ed0
add esp, 8
lea eax, [ebp - 0x40]
cmp dword [ebp - 0x2c], 8
cmovae eax, dword [ebp - 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test eax, eax
mov eax, dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [ebp - 0x1a0], eax
jne 0x402c4f
or edi, 0xffffffff
jmp 0x404991
mov eax, dword [0x43afe8]
mov dword [ebp - 0x18], 0x42488e6b
mov byte [ebp - 0x18b], 0x8b
cmp eax, dword [esi + 4]
jle 0x402cbf
push 0x43afe8
call fcn.0040e152
add esp, 4
cmp dword [0x43afe8], 0xffffffff
jne 0x402cbf
mov eax, dword [ebp - 0x18]
movaps xmm0, xmmword [0x434cd0]
mov dword [0x43affc], eax
mov al, byte [ebp - 0x18b]
push 0x42bd70
mov byte [0x43b001], 1
movups xmmword [0x43afec], xmm0
mov byte [0x43b000], al
call fcn.0040e3f2
push 0x43afe8
call fcn.0040e101
add esp, 8
mov ecx, 0x43afec
call fcn.00406740
mov edx, 0x43afec
call fcn.004077e0
push eax
call fcn.00407aa0
add esp, 4
call fcn.00404be0
mov edi, eax
mov ecx, edi
call fcn.00406680
mov ecx, edi
mov dword [ebp - 0x18], 0
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
movups xmmword [ebp - 0x28], xmm0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x402d04
sub ecx, edx
sar ecx, 1
push ecx
push edi
lea ecx, [ebp - 0x28]
call fcn.004081d0
mov byte [ebp - 4], 3
mov eax, dword [0x43b004]
mov dword [ebp - 0x190], 0x43595991
cmp eax, dword [esi + 4]
jle 0x402d77
push 0x43b004
call fcn.0040e152
add esp, 4
cmp dword [0x43b004], 0xffffffff
jne 0x402d77
mov eax, dword [ebp - 0x190]
push 0x42bd30
mov byte [0x43b00c], 1
mov dword [0x43b008], eax
call fcn.0040e3f2
push 0x43b004
call fcn.0040e101
add esp, 8
mov ecx, 0x43b008
call fcn.004066e0
mov ecx, 0x43b008
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x402d90
sub ecx, edx
sar ecx, 1
push ecx
push 0x43b008
push ecx
lea ecx, [ebp - 0x28]
call fcn.00409520
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xbc], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0xac], xmm0
mov byte [ebp - 4], 5
xor ecx, ecx
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov ecx, dword [ebp - 0x14]
cmp ecx, 8
jb 0x402e16
mov edx, dword [ebp - 0x28]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x402e0c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404b8e
push ecx
push edx
call fcn.0040e09b
add esp, 8
xor eax, eax
mov dword [ebp - 0x18], 0
cmp dword [ebp - 0xa8], 8
lea edx, [ebp - 0xbc]
push ecx
cmovae edx, dword [ebp - 0xbc]
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
call fcn.00402680
add esp, 4
test al, al
jne 0x402ebe
call fcn.00404c80
mov esi, eax
mov ecx, esi
call fcn.00406620
mov edx, esi
call fcn.004077e0
push eax
call fcn.00407aa0
mov byte [ebp - 4], 2
add esp, 4
mov ecx, dword [ebp - 0xa8]
mov edi, 0xfffffffe
cmp ecx, 8
jb 0x404991
mov edx, dword [ebp - 0xbc]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x402eaf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404b93
push ecx
push edx
call fcn.0040e09b
add esp, 8
jmp 0x404991
mov eax, dword [ebp - 0x30]
xorps xmm0, xmm0
mov ecx, eax
mov dword [ebp - 0x48], 0
sub ecx, dword [ebp - 0xac]
cmp eax, ecx
mov dword [ebp - 0x44], 0
movups xmmword [ebp - 0x58], xmm0
cmovb ecx, eax
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
cmovae eax, dword [ebp - 0x40]
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.004081d0
mov eax, dword [ebp - 0x108]
cmp eax, 8
jb 0x402f38
mov edx, dword [ebp - 0x11c]
lea ecx, [eax*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x402f2e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404b93
push ecx
push edx
call fcn.0040e09b
add esp, 8
movups xmm0, xmmword [ebp - 0x58]
xor eax, eax
mov word [ebp - 0x58], ax
movups xmmword [ebp - 0x11c], xmm0
movq xmm0, qword [ebp - 0x48]
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0xa8]
movq qword [ebp - 0x10c], xmm0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
cmp ecx, 8
jb 0x402fa8
mov edx, dword [ebp - 0xbc]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x402f9e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404b93
push ecx
push edx
call fcn.0040e09b
add esp, 8
mov edi, dword [ebp - 0x19c]
xor eax, eax
mov word [ebp - 0xbc], ax
mov eax, dword [0x43b098]
mov dword [ebp - 0xac], 0
mov edi, dword [edi]
mov dword [ebp - 0xa8], 7
mov dword [ebp - 0x64], 0x4855833b
mov dword [ebp - 0x60], 0x7bc2c4f9
mov word [ebp - 0x5c], 0xcf21
mov byte [ebp - 0x18b], 0x3c
cmp eax, dword [edi + 4]
jle 0x403059
push 0x43b098
call fcn.0040e152
add esp, 4
cmp dword [0x43b098], 0xffffffff
jne 0x403059
movaps xmm0, xmmword [0x434d20]
mov ax, word [ebp - 0x5c]
movups xmmword [0x43b09c], xmm0
mov word [0x43b0b4], ax
movq xmm0, qword [ebp - 0x64]
mov al, byte [ebp - 0x18b]
push 0x42bc70
mov byte [0x43b0b7], 1
movq qword [0x43b0ac], xmm0
mov byte [0x43b0b6], al
call fcn.0040e3f2
push 0x43b098
call fcn.0040e101
add esp, 8
mov ecx, 0x43b09c
call fcn.004065c0
mov edx, 0x43b09c
call fcn.004077e0
mov eax, dword [0x43b0b8]
mov dword [ebp - 0x78], 0x996b2363
mov dword [ebp - 0x74], 0xa51e77ce
mov dword [ebp - 0x70], 0xdf9ddbeb
mov dword [ebp - 0x6c], 0x98ab90
mov dword [ebp - 0x68], 0x990d230d
mov dword [ebp - 0x64], 0xa51b77fd
mov dword [ebp - 0x60], 0xdfdbdbc9
cmp eax, dword [edi + 4]
jle 0x4030ff
push 0x43b0b8
call fcn.0040e152
add esp, 4
cmp dword [0x43b0b8], 0xffffffff
jne 0x4030ff
movups xmm0, xmmword [ebp - 0x78]
mov eax, dword [ebp - 0x60]
push 0x42bc30
movups xmmword [0x43b0bc], xmm0
mov byte [0x43b0d8], 1
movq xmm0, qword [ebp - 0x68]
movq qword [0x43b0cc], xmm0
mov dword [0x43b0d4], eax
call fcn.0040e3f2
push 0x43b0b8
call fcn.0040e101
add esp, 8
mov ecx, 0x43b0bc
call fcn.00406560
mov ecx, 0x43b0bc
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403111
sub ecx, edx
mov eax, 0x7ffffffe
sub eax, dword [ebp - 0x30]
sar ecx, 1
cmp eax, ecx
jb 0x404b98
push ecx
lfence
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
push 0x43b0bc
push dword [ebp - 0x30]
cmovae eax, dword [ebp - 0x40]
push eax
push ecx
push dword [ebp - 0x198]
lea ecx, [ebp - 0xbc]
call fcn.00409420
mov byte [ebp - 4], 6
lea edx, [ebp - 0xbc]
cmp dword [ebp - 0xa8], 8
mov ecx, 0x43a270
push dword [ebp - 0xac]
cmovae edx, dword [ebp - 0xbc]
call fcn.004096b0
push eax
call fcn.00407ed0
add esp, 8
lea eax, [ebp - 0xbc]
cmp dword [ebp - 0xa8], 8
cmovae eax, dword [ebp - 0xbc]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
mov dword [ebp - 0x194], esi
test esi, esi
je 0x40482e
cmp esi, 0xffffffff
je 0x40482e
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0xa8]
cmp ecx, 8
jb 0x403203
mov edx, dword [ebp - 0xbc]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4031f9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404bcf
push ecx
push edx
call fcn.0040e09b
add esp, 8
push 0x2e7
xor eax, eax
mov dword [ebp - 0xac], 0
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0xa8], 7
mov word [ebp - 0xbc], ax
call esi
push 0x3e2
push dword [ebp - 0x194]
mov dword [0x43af34], eax
call esi
mov dword [0x43af30], eax
mov eax, dword [0x43b0ec]
mov dword [ebp - 0x64], 0xa73a955
mov dword [ebp - 0x60], 0x72ddd0ef
mov byte [ebp - 0x18b], 0x1b
cmp eax, dword [edi + 4]
jle 0x4032c1
push 0x43b0ec
call fcn.0040e152
add esp, 4
cmp dword [0x43b0ec], 0xffffffff
jne 0x4032c1
movaps xmm0, xmmword [0x434da0]
mov al, byte [ebp - 0x18b]
movups xmmword [0x43b0f0], xmm0
push 0x42bbb0
movq xmm0, qword [ebp - 0x64]
mov byte [0x43b109], 1
movq qword [0x43b100], xmm0
mov byte [0x43b108], al
call fcn.0040e3f2
push 0x43b0ec
call fcn.0040e101
add esp, 8
mov ecx, 0x43b0f0
call fcn.004064a0
mov edx, 0x43b0f0
call fcn.004077e0
push eax
call fcn.00407aa0
mov eax, dword [0x43af34]
push 0x3541
call eax
mov esi, eax
add esp, 8
test esi, esi
je 0x4033b0
mov eax, dword [0x43b10c]
mov word [ebp - 0x5c], 0xcc3b
mov byte [ebp - 0x18b], 0x3c
cmp eax, dword [edi + 4]
jle 0x403381
push 0x43b10c
call fcn.0040e152
add esp, 4
cmp dword [0x43b10c], 0xffffffff
jne 0x403381
movaps xmm0, xmmword [0x434d00]
mov ax, word [ebp - 0x5c]
movups xmmword [0x43b110], xmm0
mov word [0x43b140], ax
movaps xmm0, xmmword [0x434d50]
mov al, byte [ebp - 0x18b]
movups xmmword [0x43b120], xmm0
push 0x42bb70
movaps xmm0, xmmword [0x434de0]
mov byte [0x43b143], 1
movups xmmword [0x43b130], xmm0
mov byte [0x43b142], al
call fcn.0040e3f2
push 0x43b10c
call fcn.0040e101
add esp, 8
mov ecx, 0x43b110
call fcn.00406440
mov edx, 0x43b110
call fcn.004077e0
push esi
mov ecx, eax
call fcn.00404e00
push eax
call fcn.00407aa0
add esp, 4
mov edi, 0xfffffffc
jmp 0x404991
call dword [0x43af30]
push dword [ebp - 0x194]
call dword [ebp - 0x1a0]
mov eax, dword [0x43b144]
mov dword [ebp - 0x194], 0
mov byte [ebp - 0x18b], 0x1b
cmp eax, dword [edi + 4]
jle 0x403449
push 0x43b144
call fcn.0040e152
add esp, 4
cmp dword [0x43b144], 0xffffffff
jne 0x403449
movaps xmm0, xmmword [0x434d80]
mov al, byte [ebp - 0x18b]
movups xmmword [0x43b148], xmm0
push 0x42bb30
movaps xmm0, xmmword [0x434d10]
movups xmmword [0x43b158], xmm0
mov byte [0x43b179], 1
movaps xmm0, xmmword [0x434e20]
movups xmmword [0x43b168], xmm0
mov byte [0x43b178], al
call fcn.0040e3f2
push 0x43b144
call fcn.0040e101
add esp, 8
mov ecx, 0x43b148
call fcn.004063e0
mov edx, 0x43b148
call fcn.004077e0
push eax
call fcn.00407aa0
mov eax, dword [0x43b17c]
add esp, 4
mov dword [ebp - 0x78], 0x67014977
mov dword [ebp - 0x74], 0xa5284130
mov dword [ebp - 0x70], 0x533573eb
mov dword [ebp - 0x6c], 0x6e5d1c
mov dword [ebp - 0x68], 0x67674919
mov dword [ebp - 0x64], 0xa5034123
mov dword [ebp - 0x60], 0x537373e2
cmp eax, dword [edi + 4]
jle 0x4034f8
push 0x43b17c
call fcn.0040e152
add esp, 4
cmp dword [0x43b17c], 0xffffffff
jne 0x4034f8
movups xmm0, xmmword [ebp - 0x78]
mov eax, dword [ebp - 0x60]
push 0x42baf0
movups xmmword [0x43b180], xmm0
mov byte [0x43b19c], 1
movq xmm0, qword [ebp - 0x68]
movq qword [0x43b190], xmm0
mov dword [0x43b198], eax
call fcn.0040e3f2
push 0x43b17c
call fcn.0040e101
add esp, 8
mov ecx, 0x43b180
call fcn.00406380
mov ecx, 0x43b180
mov dword [ebp - 0xc4], 0
xorps xmm0, xmm0
mov dword [ebp - 0xc0], 0
movups xmmword [ebp - 0xd4], xmm0
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403530
sub ecx, edx
sar ecx, 1
push ecx
push 0x43b180
lea ecx, [ebp - 0xd4]
call fcn.004081d0
mov esi, 0x7ffffffe
mov byte [ebp - 4], 8
mov eax, esi
sub eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0xc4]
jb 0x404b9d
lfence
cmp dword [ebp - 0x2c], 8
lea ecx, [ebp - 0x40]
push dword [ebp - 0xc4]
cmovae ecx, dword [ebp - 0x40]
lea eax, [ebp - 0xd4]
cmp dword [ebp - 0xc0], 8
cmovae eax, dword [ebp - 0xd4]
push eax
push dword [ebp - 0x30]
push ecx
push ecx
push dword [ebp - 0x198]
lea ecx, [ebp - 0x58]
call fcn.00409420
cmp dword [ebp - 0x44], 8
lea eax, [ebp - 0x58]
cmovae eax, dword [ebp - 0x58]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [ebp - 0x198], eax
call eax
cmp eax, 0xffffffff
je 0x4035cf
mov byte [ebp - 0x18b], 0
test al, 0x10
je 0x4035d6
mov byte [ebp - 0x18b], 1
mov ecx, dword [ebp - 0x44]
cmp ecx, 8
jb 0x403610
mov edx, dword [ebp - 0x58]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x403606
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404ba2
push ecx
push edx
call fcn.0040e09b
add esp, 8
xor eax, eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
cmp byte [ebp - 0x18b], al
je 0x40371e
mov eax, dword [0x43b1a0]
mov word [ebp - 0x5c], 0xce6f
mov byte [ebp - 0x18b], 0x3c
cmp eax, dword [edi + 4]
jle 0x4036af
push 0x43b1a0
call fcn.0040e152
add esp, 4
cmp dword [0x43b1a0], 0xffffffff
jne 0x4036af
movaps xmm0, xmmword [0x434d90]
mov ax, word [ebp - 0x5c]
movups xmmword [0x43b1a4], xmm0
mov word [0x43b1c4], ax
movaps xmm0, xmmword [0x434df0]
mov al, byte [ebp - 0x18b]
push 0x42bab0
mov byte [0x43b1c7], 1
movups xmmword [0x43b1b4], xmm0
mov byte [0x43b1c6], al
call fcn.0040e3f2
push 0x43b1a0
call fcn.0040e101
add esp, 8
mov ecx, 0x43b1a4
call fcn.00406320
mov edx, 0x43b1a4
call fcn.004077e0
push eax
call fcn.00407aa0
mov byte [ebp - 4], 2
add esp, 4
mov ecx, dword [ebp - 0xc0]
mov edi, 0xfffffffb
cmp ecx, 8
jb 0x404991
mov edx, dword [ebp - 0xd4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40370f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404bac
push ecx
push edx
call fcn.0040e09b
add esp, 8
jmp 0x404991
mov eax, dword [0x43b1c8]
mov dword [ebp - 0x20], 0x457acf36
mov dword [ebp - 0x1c], 0x22d4cbfe
mov dword [ebp - 0x18], 0xa069b7a
mov byte [ebp - 0x18b], 0x8b
cmp eax, dword [edi + 4]
jle 0x40379b
push 0x43b1c8
call fcn.0040e152
add esp, 4
cmp dword [0x43b1c8], 0xffffffff
jne 0x40379b
mov eax, dword [ebp - 0x18]
movq xmm0, qword [ebp - 0x20]
mov dword [0x43b1d4], eax
mov al, byte [ebp - 0x18b]
push 0x42ba70
mov byte [0x43b1d9], 1
movq qword [0x43b1cc], xmm0
mov byte [0x43b1d8], al
call fcn.0040e3f2
push 0x43b1c8
call fcn.0040e101
add esp, 8
mov ecx, 0x43b1cc
call fcn.004062c0
mov edx, 0x43b1cc
mov ecx, 0x43a270
call fcn.00407b50
cmp dword [ebp - 0x2c], 8
lea edx, [ebp - 0x40]
push dword [ebp - 0x30]
cmovae edx, dword [ebp - 0x40]
mov ecx, eax
call fcn.004096b0
cmp dword [ebp - 0xc0], 8
lea edx, [ebp - 0xd4]
push dword [ebp - 0xc4]
cmovae edx, dword [ebp - 0xd4]
mov ecx, eax
call fcn.004096b0
push eax
call fcn.00407ed0
mov eax, dword [0x43b1e8]
add esp, 0xc
mov dword [ebp - 0x1c], 0x53026793
mov dword [ebp - 0x18], 0x211d6d3e
cmp eax, dword [edi + 4]
jle 0x40385a
push 0x43b1e8
call fcn.0040e152
add esp, 4
cmp dword [0x43b1e8], 0xffffffff
jne 0x40385a
movq xmm0, qword [ebp - 0x1c]
mov eax, 0x4d21
push 0x42b9f0
mov byte [0x43b1f6], 1
movq qword [0x43b1ec], xmm0
mov word [0x43b1f4], ax
call fcn.0040e3f2
push 0x43b1e8
call fcn.0040e101
add esp, 8
mov ecx, 0x43b1ec
call fcn.00406200
mov ecx, 0x43b1ec
mov dword [ebp - 0x48], 0
xorps xmm0, xmm0
mov dword [ebp - 0x44], 0
movups xmmword [ebp - 0x58], xmm0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403881
sub ecx, edx
sar ecx, 1
push ecx
push 0x43b1ec
lea ecx, [ebp - 0x58]
call fcn.004081d0
mov byte [ebp - 4], 9
mov eax, dword [0x43b1dc]
mov dword [ebp - 0x190], 0x536767bb
cmp eax, dword [edi + 4]
jle 0x4038f8
push 0x43b1dc
call fcn.0040e152
add esp, 4
cmp dword [0x43b1dc], 0xffffffff
jne 0x4038f8
mov eax, dword [ebp - 0x190]
push 0x42ba30
mov byte [0x43b1e4], 1
mov dword [0x43b1e0], eax
call fcn.0040e3f2
push 0x43b1dc
call fcn.0040e101
add esp, 8
mov ecx, 0x43b1e0
call fcn.00406260
mov ecx, 0x43b1e0
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403910
sub ecx, edx
mov eax, esi
mov edx, dword [ebp - 0x10c]
sub eax, edx
sar ecx, 1
cmp eax, ecx
jb 0x404ba7
push ecx
lfence
cmp dword [ebp - 0x108], 8
lea eax, [ebp - 0x11c]
push 0x43b1e0
cmovae eax, dword [ebp - 0x11c]
push edx
push eax
push ecx
push dword [ebp - 0x198]
lea ecx, [ebp - 0xec]
call fcn.00409420
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp - 0xec]
push eax
push dword [ebp - 0x198]
lea ecx, [ebp - 0xa4]
call fcn.00409210
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0xd8]
cmp ecx, 8
jb 0x4039c6
mov edx, dword [ebp - 0xec]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4039bc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404bac
push ecx
push edx
call fcn.0040e09b
add esp, 8
xor eax, eax
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd8], 7
mov word [ebp - 0xec], ax
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x44]
cmp ecx, 8
jb 0x403a21
mov edx, dword [ebp - 0x58]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x403a17
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404bac
push ecx
push edx
call fcn.0040e09b
add esp, 8
xor eax, eax
mov dword [ebp - 0x48], 0
cmp dword [ebp - 0x90], 8
mov word [ebp - 0x58], ax
lea eax, [ebp - 0xa4]
cmovae eax, dword [ebp - 0xa4]
push eax
mov dword [ebp - 0x44], 7
call dword [ebp - 0x198]
cmp eax, 0xffffffff
je 0x403a5d
test al, 0x10
jne 0x403cc3
cmp dword [ebp - 0x90], 8
lea eax, [ebp - 0xa4]
push 0
cmovae eax, dword [ebp - 0xa4]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x403cc3
mov eax, dword [0x43b1f8]
mov byte [ebp - 0x18b], 0x1b
cmp eax, dword [edi + 4]
jle 0x403aff
push 0x43b1f8
call fcn.0040e152
add esp, 4
cmp dword [0x43b1f8], 0xffffffff
jne 0x403aff
movaps xmm0, xmmword [0x434d60]
mov al, byte [ebp - 0x18b]
movups xmmword [0x43b1fc], xmm0
push 0x42b9b0
movaps xmm0, xmmword [0x434dc0]
movups xmmword [0x43b20c], xmm0
mov byte [0x43b22d], 1
movaps xmm0, xmmword [0x434cc0]
movups xmmword [0x43b21c], xmm0
mov byte [0x43b22c], al
call fcn.0040e3f2
push 0x43b1f8
call fcn.0040e101
add esp, 8
mov ecx, 0x43b1fc
call fcn.004063e0
mov edx, 0x43b1fc
mov ecx, 0x43a270
call fcn.00407b50
cmp dword [ebp - 0x90], 8
lea edx, [ebp - 0xa4]
push dword [ebp - 0x94]
cmovae edx, dword [ebp - 0xa4]
mov ecx, eax
call fcn.004096b0
mov esi, eax
mov word [ebp - 0x190], 0xc73b
mov eax, dword [0x43b230]
add esp, 4
mov byte [ebp - 0x18b], 0x3c
cmp eax, dword [edi + 4]
jle 0x403ba7
push 0x43b230
call fcn.0040e152
add esp, 4
cmp dword [0x43b230], 0xffffffff
jne 0x403ba7
mov ax, word [ebp - 0x190]
mov word [0x43b234], ax
mov al, byte [ebp - 0x18b]
push 0x42b970
mov byte [0x43b237], 1
mov byte [0x43b236], al
call fcn.0040e3f2
push 0x43b230
call fcn.0040e101
add esp, 8
mov ecx, 0x43b234
call fcn.004061a0
mov edx, 0x43b234
mov ecx, esi
call fcn.00407b50
push ecx
lea ecx, [ebp - 0x14c]
mov esi, eax
call fcn.0040a0f0
add esp, 4
mov byte [ebp - 4], 0xe
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x403bdd
mov eax, dword [eax]
push ecx
mov edx, eax
mov ecx, esi
call fcn.004096b0
mov esi, eax
mov word [ebp - 0x18c], 0xef32
mov eax, dword [0x43b238]
add esp, 4
cmp eax, dword [edi + 4]
jle 0x403c43
push 0x43b238
call fcn.0040e152
add esp, 4
cmp dword [0x43b238], 0xffffffff
jne 0x403c43
mov ax, word [ebp - 0x18c]
push 0x42b930
mov byte [0x43b23e], 1
mov word [0x43b23c], ax
call fcn.0040e3f2
push 0x43b238
call fcn.0040e101
add esp, 8
mov ecx, 0x43b23c
call fcn.00406140
mov edx, 0x43b23c
mov ecx, esi
call fcn.00407b50
push eax
call fcn.00407ed0
mov byte [ebp - 4], 0xd
add esp, 4
mov ecx, dword [ebp - 0x138]
cmp ecx, 8
jb 0x403ca6
mov edx, dword [ebp - 0x14c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x403c9c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404bb1
push ecx
push edx
call fcn.0040e09b
add esp, 8
xor eax, eax
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x138], 7
mov word [ebp - 0x14c], ax
mov eax, dword [0x43b24c]
mov esi, 0xe345
mov dword [ebp - 0x28], 0x45bccb91
mov dword [ebp - 0x24], 0x8b8de32c
mov dword [ebp - 0x20], 0x379ef1ed
mov dword [ebp - 0x1c], 0x4f2b19
mov dword [ebp - 0x18], 0x45accb9b
cmp eax, dword [edi + 4]
jle 0x403d46
push 0x43b24c
call fcn.0040e152
add esp, 4
cmp dword [0x43b24c], 0xffffffff
jne 0x403d46
movups xmm0, xmmword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
push 0x42b8b0
mov byte [0x43b266], 1
movups xmmword [0x43b250], xmm0
mov dword [0x43b260], eax
mov word [0x43b264], si
call fcn.0040e3f2
push 0x43b24c
call fcn.0040e101
add esp, 8
mov ecx, 0x43b250
call fcn.00406080
mov eax, dword [0x43b240]
mov dword [ebp - 0x190], 0x45cbcba5
cmp eax, dword [edi + 4]
jle 0x403da6
push 0x43b240
call fcn.0040e152
add esp, 4
cmp dword [0x43b240], 0xffffffff
jne 0x403da6
mov eax, dword [ebp - 0x190]
push 0x42b8f0
mov byte [0x43b248], 1
mov dword [0x43b244], eax
call fcn.0040e3f2
push 0x43b240
call fcn.0040e101
add esp, 8
mov ecx, 0x43b244
call fcn.004060e0
mov ecx, 0x43b244
mov dword [ebp - 0x170], 0
xorps xmm0, xmm0
mov dword [ebp - 0x16c], 0
movups xmmword [ebp - 0x180], xmm0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403dd6
sub ecx, edx
sar ecx, 1
push ecx
push 0x43b244
lea ecx, [ebp - 0x180]
call fcn.004081d0
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0xa4]
cmp dword [ebp - 0x90], 8
push dword [ebp - 0x94]
cmovae eax, dword [ebp - 0xa4]
push eax
push ecx
lea ecx, [ebp - 0x180]
call fcn.00409520
xorps xmm0, xmm0
mov dword [ebp - 0x154], 0
movups xmmword [ebp - 0x164], xmm0
mov dword [ebp - 0x150], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x164], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x154], xmm0
mov dword [eax + 0x10], 0
xor ecx, ecx
mov dword [eax + 0x14], 7
mov word [eax], cx
lea ecx, [ebp - 0x164]
push 0x43b250
mov byte [ebp - 4], 0x10
call fcn.00409190
xorps xmm0, xmm0
mov dword [ebp - 0x124], 0
movups xmmword [ebp - 0x134], xmm0
mov dword [ebp - 0x120], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x134], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x124], xmm0
mov dword [eax + 0x10], 0
lea esi, [ebp - 0x134]
mov dword [eax + 0x14], 7
xor ecx, ecx
mov word [eax], cx
mov eax, 0x7ffffffe
mov byte [ebp - 4], 0x11
cmp dword [ebp - 0x120], 8
cmovae esi, dword [ebp - 0x134]
sub eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0xc4]
jb 0x404bb6
lfence
cmp dword [ebp - 0x2c], 8
lea ecx, [ebp - 0x40]
push dword [ebp - 0xc4]
cmovae ecx, dword [ebp - 0x40]
lea eax, [ebp - 0xd4]
cmp dword [ebp - 0xc0], 8
cmovae eax, dword [ebp - 0xd4]
push eax
push dword [ebp - 0x30]
push ecx
push ecx
push dword [ebp - 0x198]
lea ecx, [ebp - 0xec]
call fcn.00409420
cmp dword [ebp - 0xd8], 8
lea eax, [ebp - 0xec]
push esi
cmovae eax, dword [ebp - 0xec]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov ecx, dword [ebp - 0xd8]
mov esi, eax
cmp ecx, 8
jb 0x403f8e
mov edx, dword [ebp - 0xec]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x403f84
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404bbb
push ecx
push edx
call fcn.0040e09b
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x120]
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd8], 7
mov word [ebp - 0xec], ax
cmp ecx, 8
jb 0x403fef
mov edx, dword [ebp - 0x134]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x403fe5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404bbb
push ecx
push edx
call fcn.0040e09b
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x150]
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x120], 7
mov word [ebp - 0x134], ax
cmp ecx, 8
jb 0x404050
mov edx, dword [ebp - 0x164]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404046
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404bbb
push ecx
push edx
call fcn.0040e09b
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x16c]
mov dword [ebp - 0x154], 0
mov dword [ebp - 0x150], 7
mov word [ebp - 0x164], ax
cmp ecx, 8
jb 0x4040b1
mov edx, dword [ebp - 0x180]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4040a7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404bbb
push ecx
push edx
call fcn.0040e09b
add esp, 8
mov eax, dword [ebp - 0x19c]
test esi, esi
jne 0x40469f
mov esi, dword [eax]
mov eax, dword [0x43b268]
mov word [ebp - 0x168], 0xcf21
mov byte [ebp - 0x18b], 0x3c
cmp eax, dword [esi + 4]
jle 0x404146
push 0x43b268
call fcn.0040e152
add esp, 4
cmp dword [0x43b268], 0xffffffff
jne 0x404146
movaps xmm0, xmmword [0x434d60]
mov ax, word [ebp - 0x168]
movups xmmword [0x43b26c], xmm0
mov word [0x43b28c], ax
movaps xmm0, xmmword [0x434dd0]
mov al, byte [ebp - 0x18b]
push 0x42b870
mov byte [0x43b28f], 1
movups xmmword [0x43b27c], xmm0
mov byte [0x43b28e], al
call fcn.0040e3f2
push 0x43b268
call fcn.0040e101
add esp, 8
mov ecx, 0x43b26c
call fcn.00406320
mov edx, 0x43b26c
mov ecx, 0x43a270
call fcn.00407b50
mov edi, eax
mov dword [ebp - 0x28], 0xffaed933
mov eax, dword [0x43b29c]
mov dword [ebp - 0x24], 0xb1f7196
mov dword [ebp - 0x20], 0xf1cea16d
mov dword [ebp - 0x1c], 0x7b1fdf
mov dword [ebp - 0x18], 0xffbed939
cmp eax, dword [esi + 4]
jle 0x4041e3
push 0x43b29c
call fcn.0040e152
add esp, 4
cmp dword [0x43b29c], 0xffffffff
jne 0x4041e3
movups xmm0, xmmword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
mov dword [0x43b2b0], eax
mov eax, 0x71ff
push 0x42b7f0
mov byte [0x43b2b6], 1
movups xmmword [0x43b2a0], xmm0
mov word [0x43b2b4], ax
call fcn.0040e3f2
push 0x43b29c
call fcn.0040e101
add esp, 8
mov ecx, 0x43b2a0
call fcn.00405fc0
mov eax, dword [0x43b290]
mov dword [ebp - 0x190], 0xffd9d907
cmp eax, dword [esi + 4]
jle 0x404243
push 0x43b290
call fcn.0040e152
add esp, 4
cmp dword [0x43b290], 0xffffffff
jne 0x404243
mov eax, dword [ebp - 0x190]
push 0x42b830
mov byte [0x43b298], 1
mov dword [0x43b294], eax
call fcn.0040e3f2
push 0x43b290
call fcn.0040e101
add esp, 8
mov ecx, 0x43b294
call fcn.00406020
mov ecx, 0x43b294
mov dword [ebp - 0x13c], 0
xorps xmm0, xmm0
mov dword [ebp - 0x138], 0
movups xmmword [ebp - 0x14c], xmm0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404273
sub ecx, edx
sar ecx, 1
push ecx
push 0x43b294
lea ecx, [ebp - 0x14c]
call fcn.004081d0
mov byte [ebp - 4], 0x12
lea eax, [ebp - 0xa4]
cmp dword [ebp - 0x90], 8
push dword [ebp - 0x94]
cmovae eax, dword [ebp - 0xa4]
push eax
push ecx
lea ecx, [ebp - 0x14c]
call fcn.00409520
xorps xmm0, xmm0
mov dword [ebp - 0x48], 0
movups xmmword [ebp - 0x58], xmm0
mov dword [ebp - 0x44], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x58], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x48], xmm0
mov dword [eax + 0x10], 0
xor ecx, ecx
mov dword [eax + 0x14], 7
mov word [eax], cx
lea ecx, [ebp - 0x58]
push 0x43b2a0
mov byte [ebp - 4], 0x13
call fcn.00409190
xorps xmm0, xmm0
mov dword [ebp - 0xf4], 0
movups xmmword [ebp - 0x104], xmm0
mov dword [ebp - 0xf0], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x104], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0xf4], xmm0
mov dword [eax + 0x10], 0
lea edx, [ebp - 0x104]
mov dword [eax + 0x14], 7
xor ecx, ecx
mov word [eax], cx
mov ecx, edi
mov byte [ebp - 4], 0x14
cmp dword [ebp - 0xf0], 8
push dword [ebp - 0xf4]
cmovae edx, dword [ebp - 0x104]
call fcn.004096b0
mov esi, eax
mov word [ebp - 0x190], 0xc73b
mov eax, dword [ebp - 0x19c]
add esp, 4
mov byte [ebp - 0x18b], 0x3c
mov edi, dword [eax]
mov eax, dword [0x43b2b8]
cmp eax, dword [edi + 4]
jle 0x4043eb
push 0x43b2b8
call fcn.0040e152
add esp, 4
cmp dword [0x43b2b8], 0xffffffff
jne 0x4043eb
mov ax, word [ebp - 0x190]
mov word [0x43b2bc], ax
mov al, byte [ebp - 0x18b]
push 0x42b7b0
mov byte [0x43b2bf], 1
mov byte [0x43b2be], al
call fcn.0040e3f2
push 0x43b2b8
call fcn.0040e101
add esp, 8
mov ecx, 0x43b2bc
call fcn.004061a0
mov edx, 0x43b2bc
mov ecx, esi
call fcn.00407b50
push ecx
lea ecx, [ebp - 0x74]
mov esi, eax
call fcn.0040a0f0
add esp, 4
mov byte [ebp - 4], 0x15
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x40441e
mov eax, dword [eax]
push ecx
mov edx, eax
mov ecx, esi
call fcn.004096b0
mov esi, eax
mov word [ebp - 0x18c], 0xef32
mov eax, dword [0x43b2c0]
add esp, 4
cmp eax, dword [edi + 4]
jle 0x404484
push 0x43b2c0
call fcn.0040e152
add esp, 4
cmp dword [0x43b2c0], 0xffffffff
jne 0x404484
mov ax, word [ebp - 0x18c]
push 0x42b770
mov byte [0x43b2c6], 1
mov word [0x43b2c4], ax
call fcn.0040e3f2
push 0x43b2c0
call fcn.0040e101
add esp, 8
mov ecx, 0x43b2c4
call fcn.00406140
mov edx, 0x43b2c4
mov ecx, esi
call fcn.00407b50
push eax
call fcn.00407ed0
mov byte [ebp - 4], 0x14
add esp, 4
mov ecx, dword [ebp - 0x60]
cmp ecx, 8
jb 0x4044e1
mov edx, dword [ebp - 0x74]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4044d7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404bc0
push ecx
push edx
call fcn.0040e09b
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0xf0]
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 7
mov word [ebp - 0x74], ax
cmp ecx, 8
jb 0x404539
mov edx, dword [ebp - 0x104]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40452f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404bc0
push ecx
push edx
call fcn.0040e09b
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0xf4], 0
mov dword [ebp - 0xf0], 7
mov word [ebp - 0x104], ax
cmp ecx, 8
jb 0x404594
mov edx, dword [ebp - 0x58]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40458a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404bc0
push ecx
push edx
call fcn.0040e09b
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x138]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
cmp ecx, 8
jb 0x4045ec
mov edx, dword [ebp - 0x14c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4045e2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404bc0
push ecx
push edx
call fcn.0040e09b
add esp, 8
mov byte [ebp - 4], 8
mov edi, 0xfffffffa
mov ecx, dword [ebp - 0x90]
cmp ecx, 8
jb 0x404635
mov edx, dword [ebp - 0xa4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40462b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404bc5
push ecx
push edx
call fcn.0040e09b
add esp, 8
xor eax, eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0xc0]
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x90], 7
mov word [ebp - 0xa4], ax
cmp ecx, 8
jb 0x404991
mov edx, dword [ebp - 0xd4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404690
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404bc5
push ecx
push edx
call fcn.0040e09b
add esp, 8
jmp 0x404991
mov ecx, dword [eax]
mov eax, dword [0x43b2c8]
mov dword [ebp - 0x20], 0x4571cf36
mov dword [ebp - 0x1c], 0x22d4c0fd
mov dword [ebp - 0x18], 0xa06806f
mov byte [ebp - 0x18b], 0x8b
cmp eax, dword [ecx + 4]
jle 0x40471e
push 0x43b2c8
call fcn.0040e152
add esp, 4
cmp dword [0x43b2c8], 0xffffffff
jne 0x40471e
mov eax, dword [ebp - 0x18]
movq xmm0, qword [ebp - 0x20]
mov dword [0x43b2d4], eax
mov al, byte [ebp - 0x18b]
push 0x42b730
mov byte [0x43b2d9], 1
movq qword [0x43b2cc], xmm0
mov byte [0x43b2d8], al
call fcn.0040e3f2
push 0x43b2c8
call fcn.0040e101
add esp, 8
mov ecx, 0x43b2cc
call fcn.004062c0
mov edx, 0x43b2cc
mov ecx, 0x43a270
call fcn.00407b50
cmp dword [ebp - 0x90], 8
lea edx, [ebp - 0xa4]
push dword [ebp - 0x94]
cmovae edx, dword [ebp - 0xa4]
mov ecx, eax
call fcn.004096b0
cmp dword [ebp - 0xc0], 8
lea edx, [ebp - 0xd4]
push dword [ebp - 0xc4]
cmovae edx, dword [ebp - 0xd4]
mov ecx, eax
call fcn.004096b0
push eax
call fcn.00407ed0
mov byte [ebp - 4], 8
add esp, 0xc
mov ecx, dword [ebp - 0x90]
cmp ecx, 8
jb 0x4047c6
mov edx, dword [ebp - 0xa4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4047bc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404bc5
push ecx
push edx
call fcn.0040e09b
add esp, 8
xor eax, eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0xc0]
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x90], 7
mov word [ebp - 0xa4], ax
cmp ecx, 8
jb 0x404827
mov edx, dword [ebp - 0xd4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40481d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404bc5
push ecx
push edx
call fcn.0040e09b
add esp, 8
xor edi, edi
jmp 0x404991
mov eax, dword [0x43b0dc]
mov dword [ebp - 0x1c], 0x5879cf36
mov dword [ebp - 0x18], 0x38c2caf9
mov word [ebp - 0x14], 0xef3b
cmp eax, dword [edi + 4]
jle 0x40489a
push 0x43b0dc
call fcn.0040e152
add esp, 4
cmp dword [0x43b0dc], 0xffffffff
jne 0x40489a
movq xmm0, qword [ebp - 0x1c]
mov ax, word [ebp - 0x14]
push 0x42bbf0
mov byte [0x43b0ea], 1
movq qword [0x43b0e0], xmm0
mov word [0x43b0e8], ax
call fcn.0040e3f2
push 0x43b0dc
call fcn.0040e101
add esp, 8
mov ecx, 0x43b0e0
call fcn.00406500
mov edx, 0x43b0e0
mov ecx, 0x43a270
call fcn.00407b50
push ecx
lea ecx, [ebp - 0x74]
mov esi, eax
call fcn.0040a0f0
add esp, 4
mov byte [ebp - 4], 7
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x4048d0
mov eax, dword [eax]
push ecx
mov edx, eax
mov ecx, esi
call fcn.004096b0
push eax
call fcn.00407ed0
mov byte [ebp - 4], 6
add esp, 8
mov ecx, dword [ebp - 0x60]
cmp ecx, 8
jb 0x404921
mov edx, dword [ebp - 0x74]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404917
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404bca
push ecx
push edx
call fcn.0040e09b
add esp, 8
mov byte [ebp - 4], 2
mov edi, 0xfffffffd
mov ecx, dword [ebp - 0xa8]
mov dword [ebp - 0x194], 0
cmp ecx, 8
jb 0x404974
mov edx, dword [ebp - 0xbc]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40496a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404bcf
push ecx
push edx
call fcn.0040e09b
add esp, 8
xor eax, eax
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xa8], 7
mov word [ebp - 0xbc], ax
mov eax, dword [ebp - 0x19c]
mov dword [ebp - 0x1c], 0x467fcf31
mov dword [ebp - 0x18], 0x77dec4ee
mov word [ebp - 0x14], 0xef6b
mov esi, dword [eax]
mov eax, dword [0x43b2dc]
cmp eax, dword [esi + 4]
jle 0x404a05
push 0x43b2dc
call fcn.0040e152
add esp, 4
cmp dword [0x43b2dc], 0xffffffff
jne 0x404a05
movq xmm0, qword [ebp - 0x1c]
mov ax, word [ebp - 0x14]
push 0x42b6f0
mov byte [0x43b2ea], 1
movq qword [0x43b2e0], xmm0
mov word [0x43b2e8], ax
call fcn.0040e3f2
push 0x43b2dc
call fcn.0040e101
add esp, 8
mov ecx, 0x43b2e0
call fcn.00406500
mov edx, 0x43b2e0
call fcn.004077e0
push eax
call fcn.00407aa0
push eax
call fcn.00407aa0
mov eax, dword [ebp - 0x194]
add esp, 8
test eax, eax
je 0x404a39
push eax
call dword [ebp - 0x1a0]
test edi, edi
jne 0x404ac5
mov eax, dword [0x43b2ec]
mov dword [ebp - 0x1c], 0x495f9a48
mov dword [ebp - 0x18], 0x2cc3d6ee
mov byte [ebp - 0x18b], 0x1b
cmp eax, dword [esi + 4]
jle 0x404aaf
push 0x43b2ec
call fcn.0040e152
add esp, 4
cmp dword [0x43b2ec], 0xffffffff
jne 0x404aaf
movq xmm0, qword [ebp - 0x1c]
mov al, byte [ebp - 0x18b]
push 0x42b6b0
mov byte [0x43b2f9], 1
movq qword [0x43b2f0], xmm0
mov byte [0x43b2f8], al
call fcn.0040e3f2
push 0x43b2ec
call fcn.0040e101
add esp, 8
mov ecx, 0x43b2f0
call fcn.00405f60
mov edx, 0x43b2f0
call fcn.004077e0
jmp 0x404ae2
call fcn.00404d60
mov esi, eax
mov ecx, esi
call fcn.00405f00
mov edx, esi
call fcn.004077e0
push edi
mov ecx, eax
call fcn.00404e00
mov ecx, dword [ebp - 0x2c]
cmp ecx, 8
jb 0x404b1c
mov edx, dword [ebp - 0x40]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404b12
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404bd4
push ecx
push edx
call fcn.0040e09b
add esp, 8
xor eax, eax
mov dword [ebp - 0x30], 0
mov word [ebp - 0x40], ax
mov eax, dword [ebp - 0x108]
mov dword [ebp - 0x2c], 7
cmp eax, 8
jb 0x404b6c
mov edx, dword [ebp - 0x11c]
lea ecx, [eax*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404b62
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404bd4
push ecx
push edx
call fcn.0040e09b
add esp, 8
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040e08d
mov esp, ebp
pop ebp
ret
call fcn.004075c0
call fcn.00414b5b
call fcn.00414b5b
call fcn.00401410
call fcn.00401410
call fcn.00414b5b
call fcn.00401410
call fcn.00414b5b
call fcn.00414b5b
call fcn.00401410
call fcn.00414b5b
call fcn.00414b5b
call fcn.00414b5b
call fcn.00414b5b
call fcn.00414b5b
call fcn.00414b5b
int3