Function at 0x4037e0
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45ba8a
mov eax, dword fs:[0]
push eax
sub esp, 0x534
mov eax, dword [0x47500c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
movss dword [ebp - 0x510], xmm2
mov dword [ebp - 0x538], edx
mov dword [ebp - 0x534], ecx
push 0xe
xor eax, eax
mov dword [ebp - 0x460], 0
push str._comm_file.lst
lea ecx, [ebp - 0x460]
mov dword [ebp - 0x450], 0
mov dword [ebp - 0x44c], 7
mov word [ebp - 0x460], ax
call fcn.00407ac0
lea edx, [ebp - 0x460]
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x4d8]
call fcn.004141e0
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x44c]
cmp edx, 8
jb 0x4038b7
mov ecx, dword [ebp - 0x460]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4038ad
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404939
push edx
push ecx
call fcn.004197d5
add esp, 8
movss xmm0, dword [ebp - 0x510]
sub esp, 8
cvtps2pd xmm0, xmm0
xor eax, eax
mov dword [ebp - 0x450], 0
mov word [ebp - 0x460], ax
lea eax, [ebp - 0x418]
mov dword [ebp - 0x44c], 7
movsd qword [esp], xmm0
push str._update_
push str._s_.1f_comm_file.lst
push 0x100
push eax
call fcn.00401290
add esp, 0x18
mov dword [ebp - 0x528], 0
lea ecx, [ebp - 0x528]
mov dword [ebp - 0x518], 0
mov dword [ebp - 0x514], 0xf
mov byte [ebp - 0x528], 0
push 1
push 0x46c63c
call fcn.00407d20
mov byte [ebp - 4], 3
lea edx, [ebp - 0x4d8]
cmp dword [ebp - 0x4c4], 8
lea eax, [ebp - 0x528]
lea ecx, [ebp - 0x418]
cmovae edx, dword [ebp - 0x4d8]
sub esp, 0xc
push eax
call fcn.00402c60
mov byte [ebp - 4], 2
add esp, 0x10
mov edx, dword [ebp - 0x514]
cmp edx, 0x10
jb 0x4039aa
mov ecx, dword [ebp - 0x528]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4039a0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40493e
push edx
push ecx
call fcn.004197d5
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x428], 0
movq qword [ebp - 0x430], xmm0
mov dword [ebp - 0x430], 0
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x428], 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x4d8]
cmp dword [ebp - 0x4c4], 8
lea edx, [ebp - 0x430]
cmovae ecx, dword [ebp - 0x4d8]
call fcn.004148e0
test al, al
jne 0x403a0b
xor bl, bl
jmp 0x404857
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x218]
push 0x5c
push eax
call fcn.004209f7
mov esi, eax
lea eax, [ebp - 0x218]
push 0x2f
push eax
call fcn.004209f7
mov ecx, eax
add esp, 0x10
test ecx, ecx
jne 0x403a62
test esi, esi
jne 0x403a62
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403a53
sub ecx, edx
jmp 0x403a6f
cmp esi, ecx
lea eax, [ebp - 0x218]
cmova ecx, esi
sub ecx, eax
sar ecx, 1
lea edx, [ebp - 0x216]
xor eax, eax
mov dword [ebp - 0x478], 0
mov dword [ebp - 0x468], 0
mov dword [ebp - 0x464], 7
lea edx, [edx + ecx*2]
mov word [ebp - 0x478], ax
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403aa6
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x478]
call fcn.00407ac0
cmp dword [ebp - 0x464], 8
lea esi, [ebp - 0x478]
push 0x5c
cmovae esi, dword [ebp - 0x478]
push esi
call fcn.004209f7
push 0x2f
push esi
call fcn.004209f7
mov dword [ebp - 0x508], 0
add esp, 0x10
mov dword [ebp - 0x4f0], 0
mov dword [ebp - 0x4f8], 0
mov dword [ebp - 0x4f4], 0xf
mov byte [ebp - 0x508], 0
mov dword [ebp - 0x4e0], 0
mov dword [ebp - 0x4dc], 0xf
mov byte [ebp - 0x4f0], 0
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x430]
mov ecx, dword [ebp - 0x42c]
mov dword [ebp - 0x510], eax
mov dword [ebp - 0x53c], ecx
cmp eax, ecx
je 0x4047ed
mov ebx, 2
nop dword [eax]
push eax
lea ecx, [ebp - 0x4c0]
call fcn.00407520
xorps xmm0, xmm0
mov dword [ebp - 0x41c], 0
movq qword [ebp - 0x424], xmm0
mov dword [ebp - 0x424], 0
mov dword [ebp - 0x420], 0
mov dword [ebp - 0x41c], 0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x528]
push 1
mov dword [ebp - 0x528], 0
push 0x46c580
mov dword [ebp - 0x518], 0
mov dword [ebp - 0x514], 0xf
mov byte [ebp - 0x528], 0
call fcn.00407d20
mov byte [ebp - 4], 9
lea eax, [ebp - 0x528]
cmp dword [ebp - 0x4ac], 0x10
lea ecx, [ebp - 0x4c0]
push eax
cmovae ecx, dword [ebp - 0x4c0]
lea edx, [ebp - 0x424]
call fcn.0040b0e0
mov byte [ebp - 4], 8
add esp, 4
mov edx, dword [ebp - 0x514]
cmp edx, 0x10
jb 0x403c45
mov ecx, dword [ebp - 0x528]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403c3b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404939
push edx
push ecx
call fcn.004197d5
add esp, 8
mov edi, dword [ebp - 0x420]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x424]
mov ecx, edi
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 3
je 0x403d3a
mov byte [ebp - 4], 7
test esi, esi
je 0x403cf3
push ecx
mov edx, edi
mov ecx, esi
call fcn.00408a70
mov ecx, dword [ebp - 0x41c]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x424]
add esp, 4
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov eax, esi
shl ecx, 3
cmp ecx, 0x1000
jb 0x403ccb
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404939
push ecx
push esi
call fcn.004197d5
add esp, 8
mov dword [ebp - 0x424], 0
mov dword [ebp - 0x420], 0
mov dword [ebp - 0x41c], 0
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x4ac]
cmp edx, 0x10
jb 0x4047d2
mov ecx, dword [ebp - 0x4c0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403d2b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404939
push edx
push ecx
call fcn.004197d5
add esp, 8
jmp 0x4047d2
cmp dword [esi + 0x44], 0x10
lea eax, [esi + 0x30]
jb 0x403d45
mov eax, dword [eax]
push 0xa
push 0
push eax
call fcn.00426653
add esp, 0xc
mov dword [ebp - 0x530], eax
test eax, eax
jne 0x403e33
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x424]
test ecx, ecx
je 0x403dec
mov edx, dword [ebp - 0x420]
push ecx
call fcn.00408a70
mov ecx, dword [ebp - 0x41c]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x424]
add esp, 4
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov eax, esi
shl ecx, 3
cmp ecx, 0x1000
jb 0x403dc4
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404939
push ecx
push esi
call fcn.004197d5
add esp, 8
mov dword [ebp - 0x424], 0
mov dword [ebp - 0x420], 0
mov dword [ebp - 0x41c], 0
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x4ac]
cmp edx, 0x10
jb 0x4047d2
mov ecx, dword [ebp - 0x4c0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403e24
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404939
push edx
push ecx
call fcn.004197d5
add esp, 8
jmp 0x4047d2
mov eax, dword [ebp - 0x424]
lea ecx, [ebp - 0x460]
add eax, 0x18
push eax
call fcn.00407520
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x448]
push dword [ebp - 0x424]
call fcn.00407520
mov byte [ebp - 4], 0xb
xor ecx, ecx
mov eax, dword [ebp - 0x438]
inc eax
mul ebx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004197e3
add esp, 4
lea edi, [ebp - 0x448]
cmp dword [ebp - 0x434], 0x10
mov ebx, eax
mov eax, dword [ebp - 0x438]
cmovae edi, dword [ebp - 0x448]
mov dword [ebp - 0x52c], ebx
lea esi, [eax + 1]
push esi
push ebx
push eax
push edi
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jne 0x403ed0
push esi
mov eax, esi
cdq
push ebx
sub eax, edx
sar eax, 1
push eax
push edi
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
jmp 0x403ed7
cmp eax, esi
jb 0x403ed7
lea eax, [esi - 1]
xor ecx, ecx
lea esi, [ebp - 0x478]
mov word [ebx + eax*2], cx
mov edi, ebx
cmp dword [ebp - 0x464], 8
cmovae esi, dword [ebp - 0x478]
cmp word [ebx], cx
je 0x403f44
sub esi, ebx
nop word [eax + eax]
mov ecx, edi
movzx edx, word [ecx + esi]
test dx, dx
je 0x4040e2
movzx eax, word [ecx]
cmp ax, dx
je 0x403f33
cmp eax, 0x41
jb 0x403f21
cmp eax, 0x5a
jbe 0x403f2b
cmp eax, 0x61
jb 0x403f38
cmp eax, 0x7a
ja 0x403f38
xor eax, edx
cmp ax, 0x20
jne 0x403f38
add ecx, 2
jmp 0x403f02
add edi, 2
sub esi, 2
cmp word [edi], 0
jne 0x403f00
mov ecx, ebx
mov dword [ebp - 0x528], 0
xor eax, eax
mov dword [ebp - 0x518], 0
mov dword [ebp - 0x514], 7
mov word [ebp - 0x528], ax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403f70
sub ecx, edx
sar ecx, 1
push ecx
push ebx
lea ecx, [ebp - 0x528]
call fcn.00407ac0
mov ebx, dword [ebp - 0x534]
xor eax, eax
mov ecx, ebx
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x4a8], 0
mov dword [ebp - 0x498], 0
mov dword [ebp - 0x494], 7
mov word [ebp - 0x4a8], ax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403fc2
sub ecx, edx
sar ecx, 1
push ecx
push ebx
lea ecx, [ebp - 0x4a8]
call fcn.00407ac0
push ecx
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0xd
push eax
lea edx, [ebp - 0x4a8]
lea ecx, [ebp - 0x490]
call fcn.004147a0
add esp, 8
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x494]
cmp edx, 8
jb 0x404042
mov ecx, dword [ebp - 0x4a8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404038
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404939
push edx
push ecx
call fcn.004197d5
add esp, 8
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x514]
cmp edx, 8
jb 0x404086
mov ecx, dword [ebp - 0x528]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40407c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404939
push edx
push ecx
call fcn.004197d5
add esp, 8
push 0
push 0x80
push 4
xor eax, eax
mov dword [ebp - 0x518], 0
cmp dword [ebp - 0x47c], 8
push 0
mov word [ebp - 0x528], ax
lea eax, [ebp - 0x490]
cmovae eax, dword [ebp - 0x490]
push 1
push 0x80000000
push eax
mov dword [ebp - 0x514], 7
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x404246
xor edi, edi
jmp 0x40425d
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x434]
cmp edx, 0x10
jb 0x404120
mov ecx, dword [ebp - 0x448]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x404116
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404939
push edx
push ecx
call fcn.004197d5
add esp, 8
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x44c]
mov dword [ebp - 0x438], 0
mov dword [ebp - 0x434], 0xf
mov byte [ebp - 0x448], 0
cmp edx, 0x10
jb 0x404179
mov ecx, dword [ebp - 0x460]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40416f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404939
push edx
push ecx
call fcn.004197d5
add esp, 8
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x424]
test ecx, ecx
je 0x404205
mov edx, dword [ebp - 0x420]
push ecx
call fcn.00408a70
mov ecx, dword [ebp - 0x41c]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x424]
add esp, 4
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov eax, esi
shl ecx, 3
cmp ecx, 0x1000
jb 0x4041dd
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404939
push ecx
push esi
call fcn.004197d5
add esp, 8
mov dword [ebp - 0x424], 0
mov dword [ebp - 0x420], 0
mov dword [ebp - 0x41c], 0
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x4ac]
cmp edx, 0x10
jb 0x4047cd
mov ecx, dword [ebp - 0x4c0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4047c3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404939
jmp 0x4047c3
lea eax, [ebp - 0x540]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, dword [ebp - 0x460]
cmp edi, dword [ebp - 0x530]
jne 0x404567
lea edx, [ebp - 0x490]
lea ecx, [ebp - 0x4a8]
call fcn.00411c20
cmp dword [ebp - 0x44c], 0x10
lea ecx, [ebp - 0x460]
mov eax, dword [ebp - 0x494]
lea edx, [ebp - 0x4a8]
mov edi, dword [ebp - 0x4a8]
setae byte [ebp - 0x50a]
mov esi, dword [ebp - 0x498]
cmovae ecx, ebx
cmp eax, 0x10
setae byte [ebp - 0x509]
cmovae edx, edi
cmp esi, dword [ebp - 0x450]
jne 0x404533
sub esi, 4
jb 0x4042e1
nop dword [eax]
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x4042e6
add edx, 4
add ecx, 4
sub esi, 4
jae 0x4042d0
cmp esi, 0xfffffffc
je 0x40431a
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x404313
cmp esi, 0xfffffffd
je 0x40431a
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x404313
cmp esi, 0xfffffffe
je 0x40431a
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x404313
cmp esi, 0xffffffff
je 0x40431a
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x40431a
sbb eax, eax
or eax, 1
jmp 0x40431c
xor eax, eax
test eax, eax
jne 0x40452d
push dword [ebp - 0x52c]
call fcn.0041954f
add esp, 4
cmp byte [ebp - 0x509], 0
je 0x40436a
mov ecx, dword [ebp - 0x494]
mov eax, edi
inc ecx
cmp ecx, 0x1000
jb 0x404360
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404939
push ecx
push edi
call fcn.004197d5
add esp, 8
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x47c]
cmp edx, 8
jb 0x4043ae
mov ecx, dword [ebp - 0x490]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4043a4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404939
push edx
push ecx
call fcn.004197d5
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x434]
mov dword [ebp - 0x480], 0
mov dword [ebp - 0x47c], 7
mov word [ebp - 0x490], ax
cmp edx, 0x10
jb 0x404409
mov ecx, dword [ebp - 0x448]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4043ff
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404939
push edx
push ecx
call fcn.004197d5
add esp, 8
cmp byte [ebp - 0x50a], 0
mov dword [ebp - 0x438], 0
mov dword [ebp - 0x434], 0xf
mov byte [ebp - 0x448], 0
mov byte [ebp - 4], 8
je 0x404460
mov ecx, dword [ebp - 0x44c]
mov eax, ebx
inc ecx
cmp ecx, 0x1000
jb 0x404456
mov ebx, dword [ebx - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404939
push ecx
push ebx
call fcn.004197d5
add esp, 8
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x424]
test ecx, ecx
je 0x4044ec
mov edx, dword [ebp - 0x420]
push ecx
call fcn.00408a70
mov ecx, dword [ebp - 0x41c]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x424]
add esp, 4
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov eax, esi
shl ecx, 3
cmp ecx, 0x1000
jb 0x4044c4
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404939
push ecx
push esi
call fcn.004197d5
add esp, 8
mov dword [ebp - 0x424], 0
mov dword [ebp - 0x420], 0
mov dword [ebp - 0x41c], 0
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x4ac]
cmp edx, 0x10
jb 0x4047cd
mov ecx, dword [ebp - 0x4c0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4047c3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404939
jmp 0x4047c3
mov eax, dword [ebp - 0x494]
cmp byte [ebp - 0x509], 0
je 0x404567
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x40455d
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404939
push ecx
push edi
call fcn.004197d5
add esp, 8
mov esi, dword [ebp - 0x538]
lea ecx, [ebp - 0x4f0]
mov eax, dword [ebp - 0x530]
push dword [ebp - 0x438]
add dword [esi], eax
lea eax, [ebp - 0x448]
cmp dword [ebp - 0x434], 0x10
cmovae eax, dword [ebp - 0x448]
push eax
call fcn.00407d20
cmp dword [ebp - 0x44c], 0x10
lea eax, [ebp - 0x460]
push dword [ebp - 0x450]
cmovae eax, ebx
lea ecx, [ebp - 0x508]
push eax
call fcn.00407d20
push dword [ebp - 0x52c]
call fcn.0041954f
add esp, 4
lea edi, [esi + 4]
mov esi, dword [edi + 4]
lea eax, [ebp - 0x508]
push eax
cmp esi, dword [edi + 8]
je 0x404603
mov ecx, esi
mov dword [ebp - 0x52c], esi
call fcn.00407520
lea eax, [ebp - 0x4f0]
mov byte [ebp - 4], 0x11
push eax
lea ecx, [esi + 0x18]
call fcn.00407520
add dword [edi + 4], 0x30
jmp 0x40460b
push esi
mov ecx, edi
call fcn.004083c0
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x47c]
cmp edx, 8
jb 0x40464f
mov ecx, dword [ebp - 0x490]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404645
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404939
push edx
push ecx
call fcn.004197d5
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x434]
mov dword [ebp - 0x480], 0
mov dword [ebp - 0x47c], 7
mov word [ebp - 0x490], ax
cmp edx, 0x10
jb 0x4046aa
mov ecx, dword [ebp - 0x448]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4046a0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404939
push edx
push ecx
call fcn.004197d5
add esp, 8
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x44c]
mov dword [ebp - 0x438], 0
mov dword [ebp - 0x434], 0xf
mov byte [ebp - 0x448], 0
cmp edx, 0x10
jb 0x404703
mov ecx, dword [ebp - 0x460]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4046f9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404939
push edx
push ecx
call fcn.004197d5
add esp, 8
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x424]
test ecx, ecx
je 0x40478f
mov edx, dword [ebp - 0x420]
push ecx
call fcn.00408a70
mov ecx, dword [ebp - 0x41c]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x424]
add esp, 4
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov eax, esi
shl ecx, 3
cmp ecx, 0x1000
jb 0x404767
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404939
push ecx
push esi
call fcn.004197d5
add esp, 8
mov dword [ebp - 0x424], 0
mov dword [ebp - 0x420], 0
mov dword [ebp - 0x41c], 0
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x4ac]
cmp edx, 0x10
jb 0x4047cd
mov ecx, dword [ebp - 0x4c0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4047c3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40493e
push edx
push ecx
call fcn.004197d5
add esp, 8
mov ebx, 2
mov eax, dword [ebp - 0x510]
add eax, 0x18
mov dword [ebp - 0x510], eax
cmp eax, dword [ebp - 0x53c]
jne 0x403b60
lea ecx, [ebp - 0x508]
mov bl, 1
call fcn.00401890
mov edx, dword [ebp - 0x464]
cmp edx, 8
jb 0x40483a
mov ecx, dword [ebp - 0x478]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404830
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40493e
push edx
push ecx
call fcn.004197d5
add esp, 8
xor eax, eax
mov dword [ebp - 0x468], 0
mov dword [ebp - 0x464], 7
mov word [ebp - 0x478], ax
mov ecx, dword [ebp - 0x430]
test ecx, ecx
je 0x4048df
mov edx, dword [ebp - 0x42c]
push ecx
call fcn.00408a70
mov ecx, dword [ebp - 0x428]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x430]
add esp, 4
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov eax, esi
shl ecx, 3
cmp ecx, 0x1000
jb 0x4048b7
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40493e
push ecx
push esi
call fcn.004197d5
add esp, 8
mov dword [ebp - 0x430], 0
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x428], 0
mov edx, dword [ebp - 0x4c4]
cmp edx, 8
jb 0x40491b
mov ecx, dword [ebp - 0x4d8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404911
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40493e
push edx
push ecx
call fcn.004197d5
add esp, 8
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00419541
mov esp, ebp
pop ebp
ret
call fcn.00429e8f
call fcn.00429e8f
int3