Function at 0x4aaf30
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x568d2f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x658
mov eax, dword [0x5af710]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
xor eax, ebp
xor edi, edi
cmp ebx, edi
mov esi, ecx
mov dword [esp + 0x65c], eax
mov dword [esp + 0x24], esi
je 0x4abaec
mov eax, 0xf
mov dword [esp + 0x244], eax
mov dword [esp + 0x240], edi
mov byte [esp + 0x230], 0
mov dword [esp + 0x66c], edi
mov dword [esp + 0x20c], eax
mov dword [esp + 0x208], edi
mov byte [esp + 0x1f8], 0
mov dword [esp + 0x228], eax
mov dword [esp + 0x224], edi
mov byte [esp + 0x214], 0
push edi
push 0x572aed
lea ecx, [esi + 0x94]
mov byte [esp + 0x674], 2
call fcn.00404640
push 0xffffffffffffffff
push edi
lea ecx, [esi + 0x78]
push eax
call fcn.00404360
push 0xffffffffffffffff
push edi
lea ecx, [esi + 0x5c]
push eax
call fcn.00404360
mov eax, dword [ebx + 0x2c]
cmp eax, edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x40], eax
je 0x4aba65
jmp 0x4ab010
mov edi, dword [esp + 0x40]
lea eax, [esp + 0x1a0]
push eax
mov ecx, edi
call fcn.0045e29a
mov ecx, dword [eax + 0x18]
mov esi, 0x10
cmp ecx, esi
jb 0x4ab034
mov eax, dword [eax + 4]
jmp 0x4ab037
add eax, 4
push str.product_version
push eax
call fcn.005470ba
add esp, 8
mov ebx, eax
mov eax, dword [esp + 0x1b8]
neg ebx
sbb bl, bl
inc bl
cmp eax, esi
jb 0x4ab068
mov ecx, dword [esp + 0x1a4]
push ecx
call fcn.0055047a
add esp, 4
test bl, bl
mov dword [esp + 0x1b8], 0xf
mov dword [esp + 0x1b4], 0
mov byte [esp + 0x1a4], 0
je 0x4ab45c
push 8
push str.key_root
lea ecx, [esp + 0x234]
call fcn.00404640
push 8
push str.key_name
lea ecx, [esp + 0x1fc]
call fcn.00404640
push 0xa
push str.value_name
lea ecx, [esp + 0x218]
call fcn.00404640
lea edx, [esp + 0x210]
push edx
lea eax, [esp + 0x1f8]
push eax
lea ecx, [esp + 0x234]
push ecx
mov ecx, dword [esp + 0x30]
push edi
call fcn.004a9d10
test eax, eax
jne 0x4ab40c
push 0x572bf4
lea edx, [esp + 0x214]
push edx
lea eax, [esp + 0x34]
push eax
call fcn.0050ba10
add esp, 0xc
xor ebx, ebx
mov byte [esp + 0x66c], 3
mov dword [esp + 0x28], ebx
lea esp, [esp]
mov esi, dword [esp + 0x30]
test esi, esi
mov edi, dword [esp + 0x34]
je 0x4ab3c7
mov ecx, edi
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jae 0x4ab3c7
xor eax, eax
mov ecx, 0x100
lea edi, [esp + 0x258]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x3c], 0x3ff
mov ecx, dword [eax + esi + 0x18]
mov edx, 0x10
cmp ecx, edx
jb 0x4ab17e
mov esi, dword [eax + esi + 4]
jmp 0x4ab182
lea esi, [eax + esi + 4]
cmp dword [esp + 0x20c], edx
mov ecx, dword [esp + 0x1f8]
jae 0x4ab199
lea ecx, [esp + 0x1f8]
cmp dword [esp + 0x244], edx
mov eax, dword [esp + 0x230]
jae 0x4ab1b0
lea eax, [esp + 0x230]
lea edx, [esp + 0x3c]
push edx
lea edx, [esp + 0x25c]
push edx
lea edx, [esp + 0x68]
push edx
push esi
push ecx
xor edi, edi
push edi
push eax
call fcn.005041b3
add esp, 8
push eax
call fcn.0050427e
add esp, 0x18
test al, al
je 0x4abaf4
cmp dword [esp + 0x60], 3
jne 0x4ab37f
cmp dword [esp + 0x3c], 0x400
jae 0x4abfff
mov al, byte [esp + 0x258]
test al, al
mov edi, dword [esp + 0x24]
lea esi, [esp + 0x258]
je 0x4ab273
lea eax, [esp + 0x258]
cmp eax, esi
jne 0x4ab22e
movsx ecx, byte [esi]
push ecx
push 0x572be0
lea edx, [esp + 0x250]
push edx
jmp 0x4ab23f
movsx eax, byte [esi]
push eax
push 0x57a668
lea ecx, [esp + 0x250]
push ecx
call fcn.0053bafc
lea eax, [esp + 0x254]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab251
sub eax, edx
push eax
lea edx, [esp + 0x24c]
push edx
lea ecx, [edi + 0x5c]
call fcn.00406b20
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x4ab210
mov eax, dword [edi + 0x70]
test eax, eax
jne 0x4ab3b6
push 1
push 2
lea ecx, [esp + 0x88]
call fcn.00404a20
imul ebx, ebx, 0x1c
add ebx, dword [esp + 0x30]
push ebx
push 0x57a65c
push 0x572a6c
lea ecx, [esp + 0x200]
push ecx
push str.Entry:
push 0x572a6c
lea edx, [esp + 0x244]
push edx
lea eax, [esp + 0x9c]
push str.Key:
push eax
mov byte [esp + 0x690], 0xe
call fcn.00403980
add esp, 8
push eax
call fcn.0040b751
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.0040b751
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.0040b751
mov eax, dword [0x5b21c0]
add esp, 8
cmp eax, 0x244
jne 0x4ac5d8
lea ecx, [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 1
push 2
lea ecx, [esp + 0x108]
call fcn.00404a20
push 0x572a6c
lea edx, [esp + 0x68]
push edx
lea ecx, [esp + 0x88]
mov byte [esp + 0x674], 0xf
call fcn.00407320
mov ecx, dword [eax + 0x18]
mov esi, 0x10
cmp ecx, esi
mov byte [esp + 0x670], 0x10
jb 0x4ac3e0
mov eax, dword [eax + 4]
jmp 0x4ac3e3
mov al, byte [esp + 0x258]
test al, al
je 0x4ac69b
lea eax, [esp + 0x258]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab398
mov ecx, dword [esp + 0x24]
sub eax, edx
push eax
lea eax, [esp + 0x25c]
push eax
add ecx, 0x5c
call fcn.00406b20
mov eax, dword [esp + 0x28]
inc ebx
add eax, 0x1c
mov dword [esp + 0x28], eax
jmp 0x4ab120
xor ebx, ebx
cmp esi, ebx
mov byte [esp + 0x66c], 2
je 0x4ab3f3
mov ecx, dword [esp + 0x60]
push ecx
lea edx, [esp + 0x30]
push edx
push edi
push esi
call fcn.0040abd8
mov eax, dword [esp + 0x40]
push eax
call fcn.0055047a
add esp, 0x14
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x28], 1
jmp 0x4aba46
push 0
lea ecx, [esp + 0x230]
push ecx
push str.product_version
mov ecx, edi
call fcn.0050462a
cmp dword [esp + 0x244], esi
mov eax, dword [esp + 0x230]
jae 0x4ab439
lea eax, [esp + 0x230]
push str.RESERVE
push eax
call fcn.005470ba
add esp, 8
test eax, eax
jne 0x4aca5d
mov dword [esp + 0x28], 1
jmp 0x4aba46
lea edx, [esp + 0x1d8]
push edx
mov ecx, edi
call fcn.0045e29a
cmp dword [eax + 0x18], esi
jb 0x4ab475
mov eax, dword [eax + 4]
jmp 0x4ab478
add eax, 4
push str.virus_engine_version
push eax
call fcn.005470ba
add esp, 8
mov ebx, eax
mov eax, dword [esp + 0x1f0]
neg ebx
sbb bl, bl
mov esi, 0x10
inc bl
cmp eax, esi
jb 0x4ab4ae
mov eax, dword [esp + 0x1dc]
push eax
call fcn.0055047a
add esp, 4
test bl, bl
mov dword [esp + 0x1f0], 0xf
mov dword [esp + 0x1ec], 0
mov byte [esp + 0x1dc], 0
je 0x4ab5f3
push 8
push str.key_root
lea ecx, [esp + 0x234]
call fcn.00404640
push 8
push str.key_name
lea ecx, [esp + 0x1fc]
call fcn.00404640
push 0xa
push str.value_name
lea ecx, [esp + 0x218]
call fcn.00404640
lea ecx, [esp + 0x210]
push ecx
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x1f8]
push edx
lea eax, [esp + 0x234]
push eax
push edi
call fcn.004a9d10
test eax, eax
jne 0x4aba46
mov edx, dword [esp + 0x214]
mov ecx, 0x100
lea edi, [esp + 0x258]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x228]
mov eax, 0x10
cmp ecx, eax
mov dword [esp + 0x3c], 0x3ff
jae 0x4ab56b
lea edx, [esp + 0x214]
cmp dword [esp + 0x20c], eax
mov ecx, dword [esp + 0x1f8]
jae 0x4ab582
lea ecx, [esp + 0x1f8]
cmp dword [esp + 0x244], eax
mov eax, dword [esp + 0x230]
jae 0x4ab599
lea eax, [esp + 0x230]
lea esi, [esp + 0x3c]
push esi
lea esi, [esp + 0x25c]
push esi
push 0
push edx
push ecx
push 0
push eax
call fcn.005041b3
add esp, 8
push eax
call fcn.0050427e
add esp, 0x18
test al, al
je 0x4aba46
mov eax, esi
lea edx, [eax + 1]
jmp 0x4ab5d0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab5d0
sub eax, edx
push eax
lea ecx, [esp + 0x25c]
push ecx
mov ecx, dword [esp + 0x2c]
add ecx, 0x78
call fcn.00404640
jmp 0x4aba46
lea edx, [esp + 0x1bc]
push edx
mov ecx, edi
call fcn.0045e29a
cmp dword [eax + 0x18], esi
jb 0x4ab60c
mov eax, dword [eax + 4]
jmp 0x4ab60f
add eax, 4
push str.virus_database_version
push eax
call fcn.005470ba
add esp, 8
mov ebx, eax
mov eax, dword [esp + 0x1d4]
neg ebx
sbb bl, bl
mov esi, 0x10
inc bl
cmp eax, esi
jb 0x4ab645
mov eax, dword [esp + 0x1c0]
push eax
call fcn.0055047a
add esp, 4
test bl, bl
mov dword [esp + 0x1d4], 0xf
mov dword [esp + 0x1d0], 0
mov byte [esp + 0x1c0], 0
je 0x4ab676
mov ecx, dword [esp + 0x24]
push edi
call fcn.004aa3c0
jmp 0x4aba46
lea ecx, [esp + 0x184]
push ecx
mov ecx, edi
call fcn.0045e29a
cmp dword [eax + 0x18], esi
jb 0x4ab68f
mov eax, dword [eax + 4]
jmp 0x4ab692
add eax, 4
push str.product_install_directory
push eax
call fcn.005470ba
add esp, 8
mov ebx, eax
mov eax, dword [esp + 0x19c]
neg ebx
sbb bl, bl
mov esi, 0x10
inc bl
cmp eax, esi
jb 0x4ab6c8
mov edx, dword [esp + 0x188]
push edx
call fcn.0055047a
add esp, 4
test bl, bl
mov edi, 0xf
mov dword [esp + 0x19c], edi
mov dword [esp + 0x198], 0
mov byte [esp + 0x188], 0
je 0x4ab7fb
mov ebx, dword [esp + 0x24]
mov eax, dword [ebx + 0x54]
test eax, eax
jne 0x4aba46
push 8
push str.key_root
lea ecx, [esp + 0x234]
call fcn.00404640
push 8
push str.key_name
lea ecx, [esp + 0x1fc]
call fcn.00404640
push 0xa
push str.value_name
lea ecx, [esp + 0x218]
call fcn.00404640
lea eax, [esp + 0x210]
push eax
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x1f8]
push ecx
lea edx, [esp + 0x234]
push edx
push eax
mov ecx, ebx
call fcn.004a9d10
test eax, eax
jne 0x4aba46
mov edx, dword [esp + 0x214]
mov ecx, 0x100
lea edi, [esp + 0x258]
rep stosd dword es:[edi], eax
cmp dword [esp + 0x228], esi
mov dword [esp + 0x3c], 0x3ff
jae 0x4ab790
lea edx, [esp + 0x214]
cmp dword [esp + 0x20c], esi
mov ecx, dword [esp + 0x1f8]
jae 0x4ab7a7
lea ecx, [esp + 0x1f8]
cmp dword [esp + 0x244], esi
mov eax, dword [esp + 0x230]
jae 0x4ab7be
lea eax, [esp + 0x230]
lea esi, [esp + 0x3c]
push esi
lea esi, [esp + 0x25c]
push esi
push 0
push edx
push ecx
push 0
push eax
call fcn.005041b3
add esp, 8
push eax
call fcn.0050427e
add esp, 0x18
test al, al
je 0x4aba46
mov ecx, esi
push ecx
lea ecx, [ebx + 0x40]
call fcn.0040b8dc
jmp 0x4aba46
cmp dword [0x5b21c0], 0x244
jne 0x4aba46
lea edx, [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 1
push 2
lea ecx, [esp + 0x88]
call fcn.00404a20
mov ecx, dword [esp + 0x40]
push 0x572a6c
lea eax, [esp + 0x48]
push eax
mov byte [esp + 0x674], 0x18
call fcn.0045e29a
mov ecx, dword [esp + 0x20]
push eax
mov edx, dword [esp + 0x22]
push 0x572a4c
mov eax, dword [esp + 0x24]
push 0x572a6c
push 0x572a48
push 0x244
push 0x572a40
push ecx
mov ecx, dword [esp + 0x36]
push 0x572a3c
push edx
mov edx, dword [esp + 0x3a]
push 0x572a3c
push eax
mov eax, dword [esp + 0x40]
push 0x572a38
push ecx
push 0x572a34
push edx
push 0x572a34
push eax
push 0x572a38
push 0x1b4
push 0x572a3c
push 0x5c
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x94], esp
xor ebx, ebx
push edi
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.._virusfile.cpp
mov byte [esp + 0x6e8], 0x19
mov byte [ecx + 4], bl
call fcn.00404640
lea ecx, [esp + 0xd8]
push ecx
call fcn.00407150
add esp, 0x24
cmp dword [eax + 0x18], esi
mov byte [esp + 0x6c0], 0x1a
jb 0x4ab8ef
mov eax, dword [eax + 4]
jmp 0x4ab8f2
add eax, 4
push eax
lea edx, [esp + 0xd8]
push 0x572a0c
push edx
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.0040b751
add esp, 8
push eax
call fcn.00403980
mov eax, dword [esp + 0x84]
add esp, 8
cmp eax, esi
jb 0x4ab9d6
mov eax, dword [esp + 0x68]
push eax
call fcn.0055047a
add esp, 4
cmp dword [esp + 0x5c], esi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x78], ebx
mov byte [esp + 0x68], 0
mov byte [esp + 0x66c], 0x18
jb 0x4ab9fe
mov ecx, dword [esp + 0x48]
push ecx
call fcn.0055047a
add esp, 4
lea edx, [esp + 0x80]
push edx
mov dword [esp + 0x60], edi
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x4c], 0
call fcn.00407930
add esp, 4
lea ecx, [esp + 0xcc]
mov byte [esp + 0x66c], 2
call fcn.004028d0
lea ecx, [esp + 0xcc]
mov dword [esp + 0xcc], 0x572840
call fcn.0054dfcb
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x28]
test eax, eax
mov dword [esp + 0x40], eax
jne 0x4ab010
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x4accd4
mov eax, dword [esp + 0x228]
mov esi, 0x10
cmp eax, esi
jb 0x4aba85
mov eax, dword [esp + 0x214]
push eax
call fcn.0055047a
add esp, 4
mov eax, dword [esp + 0x20c]
xor edi, edi
cmp eax, esi
mov ebx, 0xf
mov dword [esp + 0x228], ebx
mov dword [esp + 0x224], edi
mov byte [esp + 0x214], 0
jb 0x4ababd
mov ecx, dword [esp + 0x1f8]
push ecx
call fcn.0055047a
add esp, 4
mov dword [esp + 0x20c], ebx
mov dword [esp + 0x208], edi
cmp dword [esp + 0x244], esi
mov byte [esp + 0x1f8], 0
jb 0x4abaec
mov edx, dword [esp + 0x230]
push edx
call fcn.0055047a
add esp, 4
or eax, 0xffffffff
jmp 0x4acd5d
push 1
push 2
lea ecx, [esp + 0x108]
call fcn.00404a20
imul ebx, ebx, 0x1c
add ebx, dword [esp + 0x30]
push ebx
push 0x57a65c
push 0x572a6c
lea ecx, [esp + 0x200]
push ecx
push str.Entry:
push 0x572a6c
lea edx, [esp + 0x244]
push edx
lea eax, [esp + 0x11c]
push str.CustomRegGetValue_Key:
push eax
mov byte [esp + 0x690], 4
call fcn.00403980
add esp, 8
push eax
call fcn.0040b751
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.0040b751
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.0040b751
mov eax, dword [0x5b21c0]
add esp, 8
cmp eax, 0x244
jne 0x4abf11
lea ecx, [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 1
push 2
lea ecx, [esp + 0x88]
call fcn.00404a20
push 0x572a6c
lea edx, [esp + 0x68]
push edx
lea ecx, [esp + 0x108]
mov byte [esp + 0x674], 5
call fcn.00407320
mov ecx, dword [eax + 0x18]
mov esi, 0x10
cmp ecx, esi
mov byte [esp + 0x670], 6
jb 0x4abbee
mov eax, dword [eax + 4]
jmp 0x4abbf1
add eax, 4
push eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x22]
push 0x572a4c
mov edx, dword [esp + 0x24]
push 0x572a6c
push 0x572a48
push 0x244
push 0x572a40
push eax
mov eax, dword [esp + 0x36]
push 0x572a3c
push ecx
mov ecx, dword [esp + 0x3a]
push 0x572a3c
push edx
mov edx, dword [esp + 0x40]
push 0x572a38
push eax
push 0x572a34
push ecx
push 0x572a34
push edx
push 0x572a38
push 0x142
push 0x572a3c
push 0x5c
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x94], esp
mov ebx, 0xf
push ebx
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x14], edi
push str.._virusfile.cpp
mov byte [ecx + 4], 0
call fcn.00404640
lea eax, [esp + 0xb8]
push eax
call fcn.00407150
add esp, 0x24
cmp dword [eax + 0x18], esi
mov byte [esp + 0x6c0], 7
jb 0x4abc9b
mov eax, dword [eax + 4]
jmp 0x4abc9e
add eax, 4
push eax
lea ecx, [esp + 0xd8]
push 0x572a0c
push ecx
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
mov eax, dword [esp + 0x64]
add esp, 8
cmp eax, esi
jb 0x4abd7f
mov edx, dword [esp + 0x48]
push edx
call fcn.0055047a
add esp, 4
cmp dword [esp + 0x7c], esi
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x58], edi
mov byte [esp + 0x48], 0
mov byte [esp + 0x66c], 5
jb 0x4abda7
mov eax, dword [esp + 0x68]
push eax
call fcn.0055047a
add esp, 4
lea ecx, [esp + 0x80]
push ecx
call fcn.00407930
mov eax, dword [esp + 0x84]
mov ecx, dword [eax + 4]
lea edx, [esp + 0xd0]
add esp, 4
mov dword [esp + 0x20], edx
mov dword [esp + ecx + 0x80], 0x572924
test byte [esp + 0xc4], 1
lea edx, [esp + 0x84]
mov dword [esp + 0x40], edx
mov dword [esp + 0x84], 0x5728a0
je 0x4abe09
mov eax, dword [esp + 0x94]
mov eax, dword [eax]
push eax
call fcn.0055047a
add esp, 4
mov ecx, dword [esp + 0x94]
mov dword [ecx], edi
mov edx, dword [esp + 0xa4]
mov dword [edx], edi
mov eax, dword [esp + 0xb4]
mov dword [eax], edi
mov ecx, dword [esp + 0x98]
mov dword [ecx], edi
mov edx, dword [esp + 0xa8]
mov dword [edx], edi
mov eax, dword [esp + 0xb8]
mov dword [eax], edi
mov edx, dword [esp + 0xc4]
and edx, 0xfffffffe
mov dword [esp + 0xc0], edi
mov dword [esp + 0xc4], edx
mov dword [esp + 0x84], 0x57286c
mov eax, dword [esp + 0xbc]
cmp eax, edi
mov byte [esp + 0x66c], 9
mov ebx, eax
je 0x4abec7
mov esi, dword [eax]
cmp esi, edi
je 0x4abeb9
push edi
lea ecx, [esp + 0x2c]
call fcn.0054db25
mov eax, dword [esi + 4]
cmp eax, edi
jbe 0x4abe97
cmp eax, 0xffffffff
jae 0x4abe97
dec eax
mov dword [esi + 4], eax
mov edx, dword [esi + 4]
xor ecx, ecx
cmp edx, edi
setne cl
dec ecx
and esi, ecx
lea ecx, [esp + 0x28]
call fcn.0054db48
cmp esi, edi
je 0x4abeb9
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx]
push ebx
call fcn.0055047a
add esp, 4
mov esi, 0x10
lea ecx, [esp + 0x88]
mov byte [esp + 0x66c], 8
call fcn.0054e238
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 4]
mov dword [esp + ecx + 0x80], 0x57283c
lea ecx, [esp + 0xcc]
mov byte [esp + 0x66c], 4
mov dword [esp + 0xcc], 0x572840
call fcn.0054dfcb
jmp 0x4abf16
mov esi, 0x10
lea ecx, [esp + 0x14c]
mov byte [esp + 0x66c], 3
call fcn.004028d0
lea ecx, [esp + 0x14c]
mov dword [esp + 0x14c], 0x572840
call fcn.0054dfcb
mov eax, dword [esp + 0x30]
cmp eax, edi
je 0x4abf6b
mov edx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x30]
push ecx
push edx
push eax
call fcn.0040abd8
mov eax, dword [esp + 0x40]
push eax
call fcn.0055047a
add esp, 0x14
cmp dword [esp + 0x228], esi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
jb 0x4abf90
mov ecx, dword [esp + 0x214]
push ecx
call fcn.0055047a
add esp, 4
cmp dword [esp + 0x20c], esi
mov ebx, 0xf
mov dword [esp + 0x228], ebx
mov dword [esp + 0x224], edi
mov byte [esp + 0x214], 0
jb 0x4abfc4
mov edx, dword [esp + 0x1f8]
push edx
call fcn.0055047a
add esp, 4
cmp dword [esp + 0x244], esi
mov dword [esp + 0x20c], ebx
mov dword [esp + 0x208], edi
mov byte [esp + 0x1f8], 0
jb 0x4abaec
mov eax, dword [esp + 0x230]
push eax
call fcn.0055047a
add esp, 4
or eax, 0xffffffff
jmp 0x4acd5d
push 1
push 2
lea ecx, [esp + 0x88]
call fcn.00404a20
imul ebx, ebx, 0x1c
add ebx, dword [esp + 0x30]
push ebx
push 0x57a65c
push 0x572a6c
lea ecx, [esp + 0x200]
push ecx
push str.Entry:
push 0x572a6c
lea edx, [esp + 0x244]
push edx
lea eax, [esp + 0x9c]
push str.Key:
push eax
mov byte [esp + 0x690], 0xa
call fcn.00403980
add esp, 8
push eax
call fcn.0040b751
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.0040b751
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.0040b751
mov eax, dword [0x5b21c0]
add esp, 8
cmp eax, 0x244
jne 0x4ac2f0
lea ecx, [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 1
push 2
lea ecx, [esp + 0x108]
call fcn.00404a20
push 0x572a6c
lea edx, [esp + 0x68]
push edx
lea ecx, [esp + 0x88]
mov byte [esp + 0x674], 0xb
call fcn.00407320
cmp dword [eax + 0x18], 0x10
mov byte [esp + 0x670], 0xc
jb 0x4ac0f3
mov eax, dword [eax + 4]
jmp 0x4ac0f6
add eax, 4
push eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x22]
push 0x572a4c
mov edx, dword [esp + 0x24]
push 0x572a6c
push 0x572a48
push 0x244
push 0x572a40
push eax
mov eax, dword [esp + 0x36]
push 0x572a3c
push ecx
mov ecx, dword [esp + 0x3a]
push 0x572a3c
push edx
mov edx, dword [esp + 0x40]
push 0x572a38
push eax
push 0x572a34
push ecx
push 0x572a34
push edx
push 0x572a38
push 0x14e
push 0x572a3c
push 0x5c
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x94], esp
mov esi, 0xf
push esi
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], edi
push str.._virusfile.cpp
mov byte [ecx + 4], 0
call fcn.00404640
lea eax, [esp + 0xb8]
push eax
call fcn.00407150
add esp, 0x24
mov ecx, dword [eax + 0x18]
mov ebx, 0x10
cmp ecx, ebx
mov byte [esp + 0x6c0], 0xd
jb 0x4ac1a7
mov eax, dword [eax + 4]
jmp 0x4ac1aa
add eax, 4
push eax
lea ecx, [esp + 0x158]
push 0x572a0c
push ecx
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
mov eax, dword [esp + 0x64]
add esp, 8
cmp eax, ebx
jb 0x4ac28b
mov edx, dword [esp + 0x48]
push edx
call fcn.0055047a
add esp, 4
cmp dword [esp + 0x7c], ebx
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], edi
mov byte [esp + 0x48], 0
mov byte [esp + 0x66c], 0xb
jb 0x4ac2b3
mov eax, dword [esp + 0x68]
push eax
call fcn.0055047a
add esp, 4
lea ecx, [esp + 0x100]
push ecx
call fcn.00407930
add esp, 4
lea ecx, [esp + 0x14c]
mov byte [esp + 0x66c], 0xa
call fcn.004028d0
lea ecx, [esp + 0x14c]
mov dword [esp + 0x14c], 0x572840
call fcn.0054dfcb
jmp 0x4ac2f5
mov esi, 0xf
lea ecx, [esp + 0xcc]
mov byte [esp + 0x66c], 3
call fcn.004028d0
lea ecx, [esp + 0xcc]
mov dword [esp + 0xcc], 0x572840
call fcn.0054dfcb
mov eax, dword [esp + 0x30]
cmp eax, edi
je 0x4ac34a
mov edx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x30]
push ecx
push edx
push eax
call fcn.0040abd8
mov eax, dword [esp + 0x40]
push eax
call fcn.0055047a
add esp, 0x14
mov eax, dword [esp + 0x228]
mov ebx, 0x10
cmp eax, ebx
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
jb 0x4ac376
mov ecx, dword [esp + 0x214]
push ecx
call fcn.0055047a
add esp, 4
cmp dword [esp + 0x20c], ebx
mov dword [esp + 0x228], esi
mov dword [esp + 0x224], edi
mov byte [esp + 0x214], 0
jb 0x4ac3a5
mov edx, dword [esp + 0x1f8]
push edx
call fcn.0055047a
add esp, 4
cmp dword [esp + 0x244], ebx
mov dword [esp + 0x20c], esi
mov dword [esp + 0x208], edi
mov byte [esp + 0x1f8], 0
jb 0x4abaec
mov eax, dword [esp + 0x230]
push eax
call fcn.0055047a
add esp, 4
or eax, 0xffffffff
jmp 0x4acd5d
add eax, 4
push eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x22]
push 0x572a4c
mov edx, dword [esp + 0x24]
push 0x572a6c
push 0x572a48
push 0x244
push 0x572a40
push eax
mov eax, dword [esp + 0x36]
push 0x572a3c
push ecx
mov ecx, dword [esp + 0x3a]
push 0x572a3c
push edx
mov edx, dword [esp + 0x40]
push 0x572a38
push eax
push 0x572a34
push ecx
push 0x572a34
push edx
push 0x572a38
push 0x163
push 0x572a3c
push 0x5c
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x94], esp
mov ebx, 0xf
push ebx
xor edi, edi
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x14], edi
push str.._virusfile.cpp
mov byte [ecx + 4], 0
call fcn.00404640
lea eax, [esp + 0xb8]
push eax
call fcn.00407150
add esp, 0x24
cmp dword [eax + 0x18], esi
mov byte [esp + 0x6c0], 0x11
jb 0x4ac48f
mov eax, dword [eax + 4]
jmp 0x4ac492
add eax, 4
push eax
lea ecx, [esp + 0x158]
push 0x572a0c
push ecx
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
mov eax, dword [esp + 0x64]
add esp, 8
cmp eax, esi
jb 0x4ac573
mov edx, dword [esp + 0x48]
push edx
call fcn.0055047a
add esp, 4
cmp dword [esp + 0x7c], esi
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x58], edi
mov byte [esp + 0x48], 0
mov byte [esp + 0x66c], 0xf
jb 0x4ac59b
mov eax, dword [esp + 0x68]
push eax
call fcn.0055047a
add esp, 4
lea ecx, [esp + 0x100]
push ecx
call fcn.00407930
add esp, 4
lea ecx, [esp + 0x14c]
mov byte [esp + 0x66c], 0xe
call fcn.004028d0
lea ecx, [esp + 0x14c]
mov dword [esp + 0x14c], 0x572840
call fcn.0054dfcb
jmp 0x4ac5e4
mov ebx, 0xf
mov esi, 0x10
xor edi, edi
lea ecx, [esp + 0xcc]
mov byte [esp + 0x66c], 3
call fcn.004028d0
lea ecx, [esp + 0xcc]
mov dword [esp + 0xcc], 0x572840
call fcn.0054dfcb
lea ecx, [esp + 0x2c]
call fcn.0042ff49
cmp dword [esp + 0x228], esi
jb 0x4ac631
mov edx, dword [esp + 0x214]
push edx
call fcn.0055047a
add esp, 4
cmp dword [esp + 0x20c], esi
mov dword [esp + 0x228], ebx
mov dword [esp + 0x224], edi
mov byte [esp + 0x214], 0
jb 0x4ac660
mov eax, dword [esp + 0x1f8]
push eax
call fcn.0055047a
add esp, 4
cmp dword [esp + 0x244], esi
mov dword [esp + 0x20c], ebx
mov dword [esp + 0x208], edi
mov byte [esp + 0x1f8], 0
jb 0x4abaec
mov ecx, dword [esp + 0x230]
push ecx
call fcn.0055047a
add esp, 4
or eax, 0xffffffff
jmp 0x4acd5d
push 1
push 2
lea ecx, [esp + 0x88]
call fcn.00404a20
imul ebx, ebx, 0x1c
add ebx, dword [esp + 0x30]
push ebx
push 0x57a65c
push 0x572a6c
lea edx, [esp + 0x200]
push edx
push str.Entry:
push 0x572a6c
lea eax, [esp + 0x244]
push eax
lea ecx, [esp + 0x9c]
push str.Key:
push ecx
mov byte [esp + 0x690], 0x12
call fcn.00403980
add esp, 8
push eax
call fcn.0040b751
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.0040b751
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.0040b751
mov eax, dword [0x5b21c0]
add esp, 8
cmp eax, 0x244
jne 0x4ac98c
lea edx, [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 1
push 2
lea ecx, [esp + 0x108]
call fcn.00404a20
push 0x572a6c
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x88]
mov byte [esp + 0x674], 0x13
call fcn.00407320
cmp dword [eax + 0x18], 0x10
mov byte [esp + 0x670], 0x14
jb 0x4ac78f
mov eax, dword [eax + 4]
jmp 0x4ac792
add eax, 4
mov ecx, dword [esp + 0x20]
push eax
mov edx, dword [esp + 0x22]
push 0x572a4c
mov eax, dword [esp + 0x24]
push 0x572a6c
push 0x572a48
push 0x244
push 0x572a40
push ecx
mov ecx, dword [esp + 0x36]
push 0x572a3c
push edx
mov edx, dword [esp + 0x3a]
push 0x572a3c
push eax
mov eax, dword [esp + 0x40]
push 0x572a38
push ecx
push 0x572a34
push edx
push 0x572a34
push eax
push 0x572a38
push 0x16f
push 0x572a3c
push 0x5c
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x94], esp
mov esi, 0xf
push esi
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], edi
push str.._virusfile.cpp
mov byte [ecx + 4], 0
call fcn.00404640
lea ecx, [esp + 0xb8]
push ecx
call fcn.00407150
add esp, 0x24
mov ecx, dword [eax + 0x18]
mov ebx, 0x10
cmp ecx, ebx
mov byte [esp + 0x6c0], 0x15
jb 0x4ac843
mov eax, dword [eax + 4]
jmp 0x4ac846
add eax, 4
push eax
lea edx, [esp + 0x158]
push 0x572a0c
push edx
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
mov eax, dword [esp + 0x64]
add esp, 8
cmp eax, ebx
jb 0x4ac927
mov eax, dword [esp + 0x48]
push eax
call fcn.0055047a
add esp, 4
cmp dword [esp + 0x7c], ebx
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], edi
mov byte [esp + 0x48], 0
mov byte [esp + 0x66c], 0x13
jb 0x4ac94f
mov ecx, dword [esp + 0x68]
push ecx
call fcn.0055047a
add esp, 4
lea edx, [esp + 0x100]
push edx
call fcn.00407930
add esp, 4
lea ecx, [esp + 0x14c]
mov byte [esp + 0x66c], 0x12
call fcn.004028d0
lea ecx, [esp + 0x14c]
mov dword [esp + 0x14c], 0x572840
call fcn.0054dfcb
jmp 0x4ac991
mov esi, 0xf
lea ecx, [esp + 0xcc]
mov byte [esp + 0x66c], 3
call fcn.004028d0
lea ecx, [esp + 0xcc]
mov dword [esp + 0xcc], 0x572840
call fcn.0054dfcb
mov eax, dword [esp + 0x30]
cmp eax, edi
je 0x4ac9e6
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x30]
push edx
push ecx
push eax
call fcn.0040abd8
mov edx, dword [esp + 0x40]
push edx
call fcn.0055047a
add esp, 0x14
mov eax, dword [esp + 0x228]
mov ebx, 0x10
cmp eax, ebx
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
jb 0x4aca12
mov eax, dword [esp + 0x214]
push eax
call fcn.0055047a
add esp, 4
cmp dword [esp + 0x20c], ebx
mov dword [esp + 0x228], esi
mov dword [esp + 0x224], edi
mov byte [esp + 0x214], 0
jb 0x4aca41
mov ecx, dword [esp + 0x1f8]
push ecx
call fcn.0055047a
add esp, 4
mov eax, dword [esp + 0x244]
mov dword [esp + 0x20c], esi
mov dword [esp + 0x208], edi
cmp eax, ebx
jmp 0x4abad2
cmp dword [0x5b21c0], 0x244
jne 0x4acc71
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 1
push 2
lea ecx, [esp + 0x108]
call fcn.00404a20
mov edx, dword [esp + 0x1c]
push 0x572a6c
mov eax, dword [esp + 0x1e]
lea ecx, [esp + 0x230]
push ecx
push 0x572a4c
mov ecx, dword [esp + 0x24]
push 0x572a6c
push 0x572a48
push 0x244
push 0x572a40
push edx
mov edx, dword [esp + 0x36]
push 0x572a3c
push eax
mov eax, dword [esp + 0x3a]
push 0x572a3c
push ecx
mov ecx, dword [esp + 0x40]
push 0x572a38
push edx
push 0x572a34
push eax
push 0x572a34
push ecx
push 0x572a38
push 0x17c
push 0x572a3c
push 0x5c
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x94], esp
push 0xf
mov bl, 0x16
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], 0
push str.._virusfile.cpp
mov byte [esp + 0x6e8], bl
mov byte [ecx + 4], 0
call fcn.00404640
lea edx, [esp + 0xb8]
push edx
call fcn.00407150
add esp, 0x24
cmp dword [eax + 0x18], esi
mov byte [esp + 0x6c0], 0x17
jb 0x4acb4b
mov eax, dword [eax + 4]
jmp 0x4acb4e
add eax, 4
push eax
lea eax, [esp + 0x158]
push 0x572a0c
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
add esp, 8
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.00403980
add esp, 8
push eax
call fcn.0040b751
add esp, 8
push eax
call fcn.00403980
mov eax, dword [esp + 0x64]
add esp, 8
cmp eax, esi
mov byte [esp + 0x66c], bl
jb 0x4acc36
mov ecx, dword [esp + 0x48]
push ecx
call fcn.0055047a
add esp, 4
lea edx, [esp + 0x100]
push edx
call fcn.00407930
add esp, 4
lea ecx, [esp + 0x14c]
mov byte [esp + 0x66c], 2
call fcn.004028d0
lea ecx, [esp + 0x14c]
mov dword [esp + 0x14c], 0x572840
call fcn.0054dfcb
cmp dword [esp + 0x228], esi
jb 0x4acc8a
mov eax, dword [esp + 0x214]
push eax
call fcn.0055047a
add esp, 4
mov eax, dword [esp + 0x20c]
xor ebx, ebx
cmp eax, esi
mov edi, 0xf
mov dword [esp + 0x228], edi
mov dword [esp + 0x224], ebx
mov byte [esp + 0x214], bl
jb 0x4accc1
mov ecx, dword [esp + 0x1f8]
push ecx
call fcn.0055047a
add esp, 4
mov dword [esp + 0x20c], edi
mov dword [esp + 0x208], ebx
jmp 0x4abacb
mov eax, dword [esp + 0x228]
mov esi, 0x10
cmp eax, esi
jb 0x4accf4
mov eax, dword [esp + 0x214]
push eax
call fcn.0055047a
add esp, 4
mov eax, dword [esp + 0x20c]
xor edi, edi
cmp eax, esi
mov ebx, 0xf
mov dword [esp + 0x228], ebx
mov dword [esp + 0x224], edi
mov byte [esp + 0x214], 0
jb 0x4acd2c
mov ecx, dword [esp + 0x1f8]
push ecx
call fcn.0055047a
add esp, 4
cmp dword [esp + 0x244], esi
mov dword [esp + 0x20c], ebx
mov dword [esp + 0x208], edi
mov byte [esp + 0x1f8], 0
jb 0x4acd5b
mov edx, dword [esp + 0x230]
push edx
call fcn.0055047a
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x664]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x65c]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0053aaae
mov esp, ebp
pop ebp
ret 4