Function at 0x422fb0
Capabilities:
Check if file exists
Get disk information
Get installed programs

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5dab83
mov eax, dword fs:[0]
push eax
sub esp, 0x2ec
mov eax, dword [0x66f33c]
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
mov dword [ebp - 0x2d4], ecx
call fcn.00454a62
test al, al
je 0x423000
push edx
push ecx
pop ecx
pop ecx
push ecx
push esp
push esi
pop ebp
pop ebp
push ebp
pop ecx
pop eax
push ecx
push eax
push edi
push eax
pop ebx
pop ebx
push esp
lea eax, [ebp - 0x2c0]
push str.596587324961055210316209165441361632410922113118
push eax
call fcn.00455dd8
add esp, 8
mov dword [ebp - 4], 0
mov dword [ebp - 0x2ec], 0
mov dword [ebp - 0x2e8], 0
mov dword [ebp - 0x2e4], 0
xor eax, eax
mov byte [ebp - 4], 1
mov dword [ebp - 0x2d8], eax
mov dword [ebp - 0x2e0], eax
mov dword [ebp - 0x2dc], eax
call fcn.00454360
test al, al
je 0x42307a
push ebx
push ebx
pop ebp
push esi
pop edx
pop esp
push edi
push ebx
pop edx
push edi
push edi
push ebp
pop eax
pop edi
push esp
pop edi
push ebx
push ebx
push ebx
push ebp
pop ecx
pop ebx
pop esi
push esi
push esi
push esp
pop esp
push esi
pop edi
push ecx
push esp
pop ebx
call fcn.0045442f
test al, al
je 0x423096
pop eax
pop eax
push ebx
pop edx
pop ecx
push edi
pop esp
pop ebp
push eax
pop edi
pop edi
pop eax
push esi
push esp
push eax
push eax
push esp
pop eax
pop ebp
call fcn.004544fe
test al, al
je 0x4230b3
pop edi
pop ebx
push ebp
push eax
pop edx
pop ecx
push ecx
push esi
pop edi
push esp
push ebp
push esp
pop edi
push edi
pop esp
push esi
pop esp
push edx
push edx
push ecx
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [ebp - 0x2dc]
push eax
push 0x109
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall_
push reloc.OLEAUT32.dll_SysReAllocString
call esi
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
jne 0x423107
mov ecx, dword [ebp - 0x2d4]
lea eax, [ebp - 0x2ec]
push eax
push dword [ebp - 0x2dc]
call fcn.00424140
push dword [ebp - 0x2dc]
mov ebx, eax
mov dword [ebp - 0x2d8], ebx
call edi
jmp 0x423109
xor ebx, ebx
call fcn.0045469c
test al, al
je 0x423139
pop esp
push esp
pop esi
pop esi
pop edx
push ebx
push esi
pop esi
push esp
pop eax
pop edx
pop esi
push ebx
pop ecx
pop ecx
pop edx
push eax
pop ebp
push edx
pop eax
pop edx
pop eax
push ecx
pop edx
pop ecx
pop edi
pop ecx
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
jne 0x42317d
lea eax, [ebp - 0x2dc]
push eax
push 9
push ebx
push 0x5e50e0
push reloc.OLEAUT32.dll_SysReAllocString
call esi
test eax, eax
jne 0x42317d
mov ecx, dword [ebp - 0x2d4]
lea eax, [ebp - 0x2ec]
push eax
push dword [ebp - 0x2dc]
call fcn.00424140
push dword [ebp - 0x2dc]
mov dword [ebp - 0x2d8], eax
call edi
call fcn.004544b9
test al, al
je 0x4231a3
pop esi
push ebx
pop edi
push esi
pop edx
pop ecx
pop ebp
push eax
push ebx
pop ecx
pop ecx
pop edx
pop edx
pop esp
push ebx
push ebx
push esp
pop eax
pop ebp
push esi
pop eax
pop edx
pop edi
push eax
pop ebx
push ebp
push eax
pop esi
push eax
mov eax, dword [ebp - 0x2d8]
test eax, eax
je 0x4240c6
mov dword [ebp - 0x2d0], 0
mov dword [ebp - 0x2cc], 0
mov dword [ebp - 0x2c8], 0
push 0x20
push str.522525f797b0efa874485325934cb170
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 2
mov dword [ebp - 0x21c], 0xf
mov dword [ebp - 0x220], 0
mov byte [ebp - 0x230], 0
call fcn.00405be0
lea eax, [ebp - 0x230]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
mov eax, dword [ebp - 0x21c]
mov byte [ebp - 4], 2
cmp eax, 0x10
jb 0x423238
inc eax
lea ecx, [ebp - 0x230]
push eax
push dword [ebp - 0x230]
call fcn.004053c0
push 0x20
push str.87e8f6a2decdbe55759240a4d4b0d8d5
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 0xf
mov dword [ebp - 0x220], 0
mov byte [ebp - 0x230], 0
call fcn.00405be0
lea eax, [ebp - 0x230]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
mov eax, dword [ebp - 0x21c]
mov byte [ebp - 4], 2
cmp eax, 0x10
jb 0x42329d
inc eax
lea ecx, [ebp - 0x230]
push eax
push dword [ebp - 0x230]
call fcn.004053c0
push 0x20
push str.ea863417ab9c143d7e3dd1f75085097f
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 0xf
mov dword [ebp - 0x220], 0
mov byte [ebp - 0x230], 0
call fcn.00405be0
lea eax, [ebp - 0x230]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
mov eax, dword [ebp - 0x21c]
mov byte [ebp - 4], 2
cmp eax, 0x10
jb 0x423302
inc eax
lea ecx, [ebp - 0x230]
push eax
push dword [ebp - 0x230]
call fcn.004053c0
push 0x20
push str.939d495f64275a26b64d57ebcf3b8033
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 0xf
mov dword [ebp - 0x220], 0
mov byte [ebp - 0x230], 0
call fcn.00405be0
lea eax, [ebp - 0x230]
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
mov eax, dword [ebp - 0x21c]
mov byte [ebp - 4], 2
cmp eax, 0x10
jb 0x423367
inc eax
lea ecx, [ebp - 0x230]
push eax
push dword [ebp - 0x230]
call fcn.004053c0
push 0x20
push str.50c25f22993d082a1bd14ccf629717cf
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 0xf
mov dword [ebp - 0x220], 0
mov byte [ebp - 0x230], 0
call fcn.00405be0
lea eax, [ebp - 0x230]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
mov eax, dword [ebp - 0x21c]
mov byte [ebp - 4], 2
cmp eax, 0x10
jb 0x4233cc
inc eax
lea ecx, [ebp - 0x230]
push eax
push dword [ebp - 0x230]
call fcn.004053c0
push 0x20
push str.a40e8cf67c3b2c696a273509a49e5745
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 0xf
mov dword [ebp - 0x220], 0
mov byte [ebp - 0x230], 0
call fcn.00405be0
lea eax, [ebp - 0x230]
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
mov eax, dword [ebp - 0x21c]
mov byte [ebp - 4], 2
cmp eax, 0x10
jb 0x423431
inc eax
lea ecx, [ebp - 0x230]
push eax
push dword [ebp - 0x230]
call fcn.004053c0
push 0x20
push str.1cb8e428ed85634058c4f12484c8c26f
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 0xf
mov dword [ebp - 0x220], 0
mov byte [ebp - 0x230], 0
call fcn.00405be0
lea eax, [ebp - 0x230]
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
mov eax, dword [ebp - 0x21c]
mov byte [ebp - 4], 2
cmp eax, 0x10
jb 0x423496
inc eax
lea ecx, [ebp - 0x230]
push eax
push dword [ebp - 0x230]
call fcn.004053c0
push str.8938f379a6a2617c56f524e330e0331d
lea ecx, [ebp - 0x260]
call fcn.00405f10
lea eax, [ebp - 0x260]
mov byte [ebp - 4], 0xa
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
mov eax, dword [ebp - 0x24c]
mov byte [ebp - 4], 2
cmp eax, 0x10
jb 0x4234de
inc eax
lea ecx, [ebp - 0x260]
push eax
push dword [ebp - 0x260]
call fcn.004053c0
push str.1bb0a083ab7890de202dd42c84f46d61
lea ecx, [ebp - 0x260]
call fcn.00405f10
lea eax, [ebp - 0x260]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
mov eax, dword [ebp - 0x24c]
mov byte [ebp - 4], 2
cmp eax, 0x10
jb 0x423526
inc eax
lea ecx, [ebp - 0x260]
push eax
push dword [ebp - 0x260]
call fcn.004053c0
call fcn.00454588
test al, al
je 0x423541
pop edx
pop edi
push edx
pop ebx
pop ebp
pop edx
push esp
pop edx
push esp
push ebp
pop ebp
pop edi
push eax
push esp
push esp
push ebx
pop edi
pop edi
call fcn.004547b0
test al, al
je 0x423565
push edi
push edi
push eax
push edi
pop ecx
push ebp
push esp
pop ebp
push ebp
push ebp
pop edi
pop ebp
push ebp
pop esp
pop ecx
push esp
push eax
pop esp
push esi
pop esp
push ebp
push esi
push eax
push edi
pop edx
push edx
push esp
call fcn.00454612
test al, al
je 0x423580
pop edi
push edi
push ebx
push edx
pop esi
pop edi
push ebx
pop ebx
push esp
push eax
pop eax
push ebx
pop esi
push ebx
push ebx
push esp
pop ecx
pop ebx
push str.1c5dbbf773485329d8fa64e7b1201abd
lea ecx, [ebp - 0x260]
call fcn.00405f10
lea eax, [ebp - 0x260]
mov byte [ebp - 4], 0xc
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
mov eax, dword [ebp - 0x24c]
mov byte [ebp - 4], 2
cmp eax, 0x10
jb 0x4235c8
inc eax
lea ecx, [ebp - 0x260]
push eax
push dword [ebp - 0x260]
call fcn.004053c0
push str.b9383e086af644b5907dd8660debafed
lea ecx, [ebp - 0x260]
call fcn.00405f10
lea eax, [ebp - 0x260]
mov byte [ebp - 4], 0xd
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
mov eax, dword [ebp - 0x24c]
mov byte [ebp - 4], 2
cmp eax, 0x10
jb 0x423610
inc eax
lea ecx, [ebp - 0x260]
push eax
push dword [ebp - 0x260]
call fcn.004053c0
push str.7d7c450e9a68186cc87d53adf7fa5286
lea ecx, [ebp - 0x248]
call fcn.00405f10
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 2
call fcn.00403800
push str.c61db38124cd4410dff0c92874fb1d9a
lea ecx, [ebp - 0x248]
call fcn.00405f10
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0xf
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 2
call fcn.00403800
push str.3cf2dd950a034e51fc2bd1204e370dd2
lea ecx, [ebp - 0x248]
call fcn.00405f10
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x10
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 2
call fcn.00403800
push str.7400e13efa61457956a0faca9ab8bfb5
lea ecx, [ebp - 0x248]
call fcn.00405f10
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x11
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 2
call fcn.00403800
push str.4313aea9fbc7cff2a782d7f22b1ce154
lea ecx, [ebp - 0x248]
call fcn.00405f10
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x12
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 2
call fcn.00403800
push str.e1db8c67c6627093e8045a4bcb864b05
lea ecx, [ebp - 0x248]
call fcn.00405f10
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x13
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 2
call fcn.00403800
push str.8ae5a778a6687732c80fcbbac89e09c2
lea ecx, [ebp - 0x248]
call fcn.00405f10
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x14
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 2
call fcn.00403800
push str.7cc599cde113a7d2e08d5c362fb9c322
lea ecx, [ebp - 0x248]
call fcn.00405f10
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x15
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 2
call fcn.00403800
push str.5d2b577877d0b59d1d56cecbd4ba39ba
lea ecx, [ebp - 0x248]
call fcn.00405f10
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x16
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 2
call fcn.00403800
call fcn.004543ea
test al, al
je 0x423815
push ebx
push ecx
pop edx
pop ecx
pop edx
push eax
pop ecx
push edi
push ebx
push edx
push edx
push edi
pop esi
pop ebx
push esp
push esi
push eax
pop edi
pop eax
push esp
push edx
pop edi
pop esi
push ebp
pop eax
pop edx
pop esi
push ebx
push ebp
pop ebp
push esi
call fcn.00454726
test al, al
je 0x42383c
pop esi
pop ebp
pop ebx
pop ecx
push ecx
push ebp
pop eax
push esi
pop ecx
pop eax
pop edx
push ebp
pop eax
push esp
pop esi
pop esi
push edi
pop ecx
pop ebx
push eax
push esi
pop edi
pop ecx
push ecx
pop eax
push esi
push ebp
pop eax
push edi
pop ecx
call fcn.00454909
test al, al
je 0x423864
push esp
pop eax
push ecx
pop edi
push ecx
pop ecx
pop eax
push esp
pop ecx
pop edi
pop edi
push ebx
pop ecx
pop edx
pop ecx
push eax
pop esp
pop eax
push edx
pop ecx
pop eax
pop ebx
pop eax
pop ecx
pop edx
push ebp
push ecx
pop eax
push edi
push esp
pop edx
push str.6ec0b5f3ae2a9ca5502d4a79d70a0ba6
lea ecx, [ebp - 0x248]
call fcn.00405f10
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x17
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 2
call fcn.00403800
push str.63826da1ef17da624e5c62661b0785fb
lea ecx, [ebp - 0x248]
call fcn.00405f10
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x18
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 2
call fcn.00403800
push str.81dcd3b153ed43c895a3562a63e5e2d8
lea ecx, [ebp - 0x248]
call fcn.00405f10
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x19
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 2
call fcn.00403800
push str.56414df0679913296f038415aff941d5
lea ecx, [ebp - 0x248]
call fcn.00405f10
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x1a
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 2
call fcn.00403800
push str.f34f110669ae7cd019fc564721042e90
lea ecx, [ebp - 0x248]
call fcn.00405f10
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x1b
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 2
call fcn.00403800
push str.d1a7703cca84533450f28d739cce0e93
lea ecx, [ebp - 0x248]
call fcn.00405f10
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x1c
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 2
call fcn.00403800
push str.9cc844bb4e1d31039df006a7e9e6ee56
lea ecx, [ebp - 0x248]
call fcn.00405f10
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x1d
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 2
call fcn.00403800
push str.31aeef5cca0fd6a5cd0ec14f66a6c0df
lea ecx, [ebp - 0x248]
call fcn.00405f10
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x1e
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 2
call fcn.00403800
push str.2edd5b245e094ecb6959980c0c862212
lea ecx, [ebp - 0x248]
call fcn.00405f10
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x1f
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00411b00
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 2
call fcn.00403800
call fcn.00454543
test al, al
je 0x423a65
pop esp
pop ecx
pop ecx
push edx
pop esp
pop edx
push ecx
pop edi
push esi
pop ecx
pop ecx
pop ecx
push esi
pop ebp
push edx
push ebx
pop edx
push ecx
pop edx
push ebx
pop esi
push edi
push ebp
pop edx
push ebp
push esi
pop ecx
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.0047be90
add esp, 0xc
lea eax, [ebp - 0x218]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
call fcn.004544b9
test al, al
je 0x423aaa
push edx
pop edi
push esi
push ebp
pop esp
push edx
push ebp
push eax
pop edx
push ebp
pop edx
pop ebp
push ebp
pop esp
pop edi
pop edx
pop edx
push edi
pop esi
push ecx
call fcn.004547b0
test al, al
je 0x423ac4
pop edi
push ebx
pop edi
push ebp
push ebp
pop eax
pop ebp
push edx
pop ebp
pop edx
pop ecx
push esi
push ebp
pop ebx
push ebx
pop ecx
push ebx
lea eax, [ebp - 0x218]
mov ecx, eax
mov dword [ebp - 0x2d4], eax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x423ad5
sub ecx, edx
sar ecx, 1
cmp ecx, 3
jne 0x423c2a
nop dword [eax]
call fcn.00454993
test al, al
je 0x423b10
push esi
push edi
push ecx
pop edi
push eax
pop ebx
pop esp
push esp
pop esp
pop edi
push ebx
pop edx
push esi
pop esp
push eax
push eax
pop ebx
pop ecx
push esp
pop ebp
pop esi
pop edx
push ecx
call fcn.004547b0
test al, al
je 0x423b38
push ebx
push edx
pop edx
push ebx
pop ebx
pop ecx
push eax
pop eax
pop esp
push edx
pop edx
pop ecx
push eax
pop esp
pop esp
push esp
push ebx
push esi
pop ebx
push edx
pop ebp
push ecx
push esp
push edx
pop edx
pop esp
pop edx
push ebx
push edx
pop esp
push ecx
call fcn.0045483a
test al, al
je 0x423b51
push eax
push esp
pop edi
push esi
push edi
pop ebp
push ebx
push edx
pop ecx
push edi
push esp
pop esi
pop edx
pop ebx
pop esi
pop ebp
call fcn.0045494e
test al, al
je 0x423b6d
push esp
push edi
push ebx
pop ebp
pop esi
pop eax
pop ebx
push esi
pop ebx
push esi
push edx
push edi
push ebp
pop ebx
pop edx
pop ebx
pop esp
pop esp
push edi
mov ebx, dword [ebp - 0x2d4]
lea ecx, [ebp - 0x230]
push ebx
call fcn.00403740
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x2c0]
mov byte [ebp - 4], 0x20
push eax
lea ecx, [ebp - 0x230]
call fcn.00405180
push 1
push 0x5e283c
lea ecx, [ebp - 0x230]
call fcn.00405290
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x423bdc
lea eax, [ebp - 0x230]
push eax
lea ecx, [ebp - 0x2ec]
call fcn.00427bb0
add ebx, 8
mov esi, ebx
mov dword [ebp - 0x2d4], ebx
lea ecx, [esi + 2]
nop word [eax + eax]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x423bf0
mov eax, dword [ebp - 0x21c]
sub esi, ecx
sar esi, 1
mov byte [ebp - 4], 2
cmp eax, 8
jb 0x423c21
inc eax
lea ecx, [ebp - 0x230]
push eax
push dword [ebp - 0x230]
call fcn.00403100
cmp esi, 3
je 0x423af0
mov esi, dword [ebp - 0x2ec]
mov dword [ebp - 0x2d4], esi
cmp esi, dword [ebp - 0x2e8]
je 0x4240b7
cmp dword [ebp - 0x2e0], 0
jne 0x4240b7
call fcn.00454360
test al, al
je 0x423c7e
push ebx
push ebx
pop ebp
push esi
pop edx
pop esp
push edi
push ebx
pop edx
push edi
push edi
push ebp
pop eax
pop edi
push esp
pop edi
push ebx
push ebx
push ebx
push ebp
pop ecx
pop ebx
pop esi
push esi
push esi
push esp
pop esp
push esi
pop edi
push ecx
push esp
pop ebx
mov esi, dword [ebp - 0x2d4]
call fcn.0045442f
test al, al
je 0x423c9a
pop eax
pop eax
push ebx
pop edx
pop ecx
push edi
pop esp
pop ebp
push eax
pop edi
pop edi
pop eax
push esi
push esp
push eax
push eax
push esp
pop eax
pop ebp
call fcn.004544fe
test al, al
je 0x423cb7
pop edi
pop ebx
push ebp
push eax
pop edx
pop ecx
push ecx
push esi
pop edi
push esp
push ebp
push esp
pop edi
push edi
pop esp
push esi
pop esp
push edx
push edx
push ecx
cmp dword [esi + 0x14], 8
jb 0x423cc1
mov eax, dword [esi]
jmp 0x423cc3
mov eax, esi
push eax
lea ecx, [ebp - 0x2a8]
call fcn.00403740
mov dword [ebp - 0x2f8], 0
mov dword [ebp - 0x2f4], 0
mov dword [ebp - 0x2f0], 0
cmp dword [ebp - 0x294], 8
lea ecx, [ebp - 0x2f8]
lea eax, [ebp - 0x2a8]
mov byte [ebp - 4], 0x22
cmovae eax, dword [ebp - 0x2a8]
push ecx
push eax
call fcn.00460b16
mov ebx, dword [ebp - 0x2f8]
add esp, 8
mov dword [ebp - 0x2d8], ebx
cmp ebx, dword [ebp - 0x2f4]
je 0x424075
nop dword [eax]
cmp dword [ebp - 0x2e0], 0
jne 0x42406f
cmp dword [ebx + 0x14], 8
jb 0x423d47
mov eax, dword [ebx]
jmp 0x423d49
mov eax, ebx
push eax
lea ecx, [ebp - 0x260]
call fcn.00403740
push 1
push 0
push 0x5e5578
lea ecx, [ebp - 0x260]
mov byte [ebp - 4], 0x23
call fcn.00405410
cmp eax, 0xffffffff
jle 0x424038
push 0xffffffffffffffff
inc eax
lea ecx, [ebp - 0x260]
push eax
lea eax, [ebp - 0x278]
push eax
call fcn.00419070
push 1
push 0
push 0x5e28c0
lea ecx, [ebp - 0x278]
mov byte [ebp - 4], 0x24
call fcn.00405410
cmp eax, 0xffffffff
jle 0x423e37
push eax
push 0
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x278]
call fcn.00419070
mov esi, eax
lea eax, [ebp - 0x278]
cmp eax, esi
je 0x423e15
mov eax, dword [ebp - 0x264]
cmp eax, 8
jb 0x423dec
inc eax
lea ecx, [ebp - 0x278]
push eax
push dword [ebp - 0x278]
call fcn.00403100
xor eax, eax
mov dword [ebp - 0x264], 7
push esi
lea ecx, [ebp - 0x278]
mov dword [ebp - 0x268], 0
mov word [ebp - 0x278], ax
call fcn.00405110
mov eax, dword [ebp - 0x234]
mov byte [ebp - 4], 0x24
cmp eax, 8
jb 0x423e37
inc eax
lea ecx, [ebp - 0x248]
push eax
push dword [ebp - 0x248]
call fcn.00403100
call fcn.0045469c
test al, al
je 0x423e5b
pop esp
push esp
pop esi
pop esi
pop edx
push ebx
push esi
pop esi
push esp
pop eax
pop edx
pop esi
push ebx
pop ecx
pop ecx
pop edx
push eax
pop ebp
push edx
pop eax
pop edx
pop eax
push ecx
pop edx
pop ecx
pop edi
pop ecx
lea eax, [ebp - 0x278]
push eax
call fcn.0045abba
add esp, 4
mov dword [ebp - 0x27c], 7
xor eax, eax
mov dword [ebp - 0x280], 0
mov word [ebp - 0x290], ax
lea ecx, [ebp - 0x290]
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x278]
push eax
call fcn.00402ee0
push 1
push 0x5e28c0
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 0x26
call fcn.00405290
push 0x12
push 0x5e28c4
lea ecx, [ebp - 0x290]
call fcn.00405290
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.004599b0
add esp, 8
mov ecx, dword [ebp - 0x2d0]
mov eax, ecx
mov esi, dword [ebp - 0x21c]
mov edi, dword [ebp - 0x230]
mov byte [ebp - 4], 0x27
cmp ecx, dword [ebp - 0x2cc]
je 0x423faf
nop
cmp dword [eax + 0x14], 0x10
jb 0x423f0a
mov edx, dword [eax]
jmp 0x423f0c
mov edx, eax
cmp esi, 0x10
lea ecx, [ebp - 0x230]
cmovae ecx, edi
nop dword [eax + eax]
mov bl, byte [ecx]
cmp bl, byte [edx]
mov byte [ebp - 0x2c1], bl
mov ebx, dword [ebp - 0x2d8]
jne 0x423f62
cmp byte [ebp - 0x2c1], 0
je 0x423f5e
mov bl, byte [ecx + 1]
cmp bl, byte [edx + 1]
mov byte [ebp - 0x2c1], bl
mov ebx, dword [ebp - 0x2d8]
jne 0x423f62
add ecx, 2
add edx, 2
cmp byte [ebp - 0x2c1], 0
jne 0x423f20
xor ecx, ecx
jmp 0x423f67
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x423f78
add eax, 0x18
cmp eax, dword [ebp - 0x2cc]
jne 0x423f00
jmp 0x423faf
cmp dword [ebp - 0x264], 8
lea eax, [ebp - 0x278]
mov dword [ebp - 0x2e0], 1
cmovae eax, dword [ebp - 0x278]
push eax
call fcn.00404c10
mov ecx, eax
call fcn.0040faf0
mov esi, dword [ebp - 0x21c]
mov edi, dword [ebp - 0x230]
cmp esi, 0x10
jb 0x423fc4
lea eax, [esi + 1]
push eax
push edi
lea ecx, [ebp - 0x230]
call fcn.004053c0
mov eax, dword [ebp - 0x27c]
mov dword [ebp - 0x21c], 0xf
mov dword [ebp - 0x220], 0
mov byte [ebp - 0x230], 0
cmp eax, 8
jb 0x423ffd
inc eax
lea ecx, [ebp - 0x290]
push eax
push dword [ebp - 0x290]
call fcn.00403100
xor eax, eax
mov dword [ebp - 0x27c], 7
mov word [ebp - 0x290], ax
mov eax, dword [ebp - 0x264]
mov dword [ebp - 0x280], 0
cmp eax, 8
jb 0x424038
inc eax
lea ecx, [ebp - 0x278]
push eax
push dword [ebp - 0x278]
call fcn.00403100
mov eax, dword [ebp - 0x24c]
mov byte [ebp - 4], 0x22
cmp eax, 8
jb 0x42405a
inc eax
lea ecx, [ebp - 0x260]
push eax
push dword [ebp - 0x260]
call fcn.00403100
add ebx, 0x18
mov dword [ebp - 0x2d8], ebx
cmp ebx, dword [ebp - 0x2f4]
jne 0x423d30
mov esi, dword [ebp - 0x2d4]
lea ecx, [ebp - 0x2f8]
call fcn.004055b0
mov eax, dword [ebp - 0x294]
mov byte [ebp - 4], 2
cmp eax, 8
jb 0x4240a2
inc eax
lea ecx, [ebp - 0x2a8]
push eax
push dword [ebp - 0x2a8]
call fcn.00403100
add esi, 0x18
mov dword [ebp - 0x2d4], esi
cmp esi, dword [ebp - 0x2e8]
jne 0x423c42
lea ecx, [ebp - 0x2d0]
mov byte [ebp - 4], 1
call fcn.004060c0
call fcn.004544b9
test al, al
je 0x4240ec
pop esi
push ebx
pop edi
push esi
pop edx
pop ecx
pop ebp
push eax
push ebx
pop ecx
pop ecx
pop edx
pop edx
pop esp
push ebx
push ebx
push esp
pop eax
pop ebp
push esi
pop eax
pop edx
pop edi
push eax
pop ebx
push ebp
push eax
pop esi
push eax
lea ecx, [ebp - 0x2ec]
call fcn.004055b0
mov ecx, dword [ebp - 0x2ac]
cmp ecx, 8
jb 0x424115
inc ecx
push ecx
push dword [ebp - 0x2c0]
lea ecx, [ebp - 0x2c0]
call fcn.00403100
mov eax, dword [ebp - 0x2e0]
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.0045132d
mov esp, ebp
pop ebp
ret