Function at 0x465bd0
Capabilities:
Capture webcam image
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x78
mov eax, dword [0x53c160]
xor eax, esp
mov dword [esp + 0x74], eax
mov eax, dword [ebp + 0x1c]
push esi
mov esi, ecx
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x10], ecx
push edi
mov edi, dword [ebp + 0x18]
sub eax, 0
je 0x466374
sub eax, 1
je 0x465f1a
sub eax, 2
jne 0x465e20
mov eax, dword [ebp + 0xc]
cmp eax, 0x200
jne 0x465d98
call dword [sym.imp.USER32.dll_GetMessagePos]
movsx ecx, ax
shr eax, 0x10
test byte [esi + 0x84], 1
movsx edx, ax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x10], 0
je 0x465d6c
mov eax, dword [esi + 4]
push edx
push ecx
mov dword [esp + 0x1c], eax
call dword [sym.imp.USER32.dll_WindowFromPoint]
mov ecx, dword [esp + 0x14]
cmp eax, ecx
jne 0x465d7a
lea eax, [esp + 0x20]
push eax
push ecx
call dword [sym.imp.USER32.dll_ScreenToClient]
lea eax, [esp + 0x20]
push eax
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0x445
push dword [esi + 4]
mov dword [esp + 0x2c], eax
call eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], eax
cmp ecx, dword [0x53ccb0]
jne 0x465cab
mov ecx, dword [esp + 0x24]
cmp ecx, dword [0x53ccb4]
je 0x465d7a
test eax, eax
js 0x465d7a
push dword [esi + 0x44]
call dword [sym.imp.USER32.dll_GetMenuItemCount]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x465d7a
mov eax, dword [esi + 0x88]
cmp ecx, eax
je 0x465d7a
cmp eax, 0xffffffff
je 0x465d7a
lea eax, [esp + 0x30]
xorps xmm0, xmm0
push eax
push ecx
lfence
push 0x417
push dword [esi + 4]
movaps xmmword [esp + 0x40], xmm0
mov dword [esp + 0x50], 0
call dword [esp + 0x2c]
test byte [esp + 0x38], 4
je 0x465d7a
mov eax, dword [esp + 0x14]
or eax, 0xffff0000
mov dword [esi + 0x8c], eax
mov edx, dword [esi + 0xc]
sub edx, 1
jns 0x465d26
xor edx, edx
jmp 0x465d2f
lfence
mov eax, dword [esi + 8]
mov edx, dword [eax + edx*4]
movzx ecx, word [esp + 0x24]
movzx eax, word [esp + 0x20]
mov esi, dword [sym.imp.USER32.dll_PostMessageW]
shl ecx, 0x10
or ecx, eax
mov dword [esp + 0x14], edx
push ecx
push 0
push 0x202
push edx
call esi
push 0
push 0x1b
push 0x100
push dword [esp + 0x20]
call esi
mov dword [esp + 0x10], 1
jmp 0x465d7a
lea eax, [esp + 0x20]
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [0x53ccb0], eax
mov dword [0x53ccb4], ecx
mov dword [edi], 0
jmp 0x4668dd
cmp eax, 0x104
jne 0x465e60
mov eax, dword [ebp + 0x10]
cmp eax, 0x12
jne 0x465dd2
cmp byte [esi + 0x84], 0
jge 0x465dd7
mov cl, byte [esi + 0x85]
mov al, cl
and al, 6
cmp al, 2
jne 0x465dd7
test cl, 8
je 0x465dd7
push 1
mov ecx, esi
call fcn.00465510
jmp 0x465dd7
cmp eax, 0x20
je 0x465e35
test byte [esi + 0x84], 1
jne 0x465e55
mov eax, dword [esi + 4]
mov dword [esp + 0x1c], eax
call dword [sym.imp.USER32.dll_GetFocus]
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
jne 0x465e55
and byte [esi + 0x85], 0xf7
push 0
push 0xffffffffffffffff
push 0x448
push ecx
call dword [sym.imp.USER32.dll_PostMessageW]
mov ecx, esi
call fcn.00465570
or byte [esi + 0x84], 0x40
mov dword [edi], 0
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.004c3ba1
mov esp, ebp
pop ebp
ret 0x18
mov cl, byte [esi + 0x85]
mov al, cl
and al, 6
cmp al, 6
jne 0x465e55
or cl, 8
mov byte [esi + 0x85], cl
mov ecx, esi
push 0
call fcn.00465510
mov eax, dword [ebp + 0x10]
mov dword [esi + 0xa8], eax
jmp 0x465e1a
cmp eax, 0x105
jne 0x465e7b
mov al, byte [esi + 0x85]
test al, 8
jne 0x465e1a
or al, 8
mov byte [esi + 0x85], al
jmp 0x465e1a
cmp eax, 0x106
jne 0x465eb7
test byte [esi + 0x84], 1
jne 0x465e1a
mov eax, dword [esi + 0x20]
cmp eax, dword [esi + 4]
je 0x465e1a
cmp dword [ebp + 0x10], 0x20
je 0x465e1a
mov dword [edi], 0
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.004c3ba1
mov esp, ebp
pop ebp
ret 0x18
cmp eax, 0x100
jne 0x465edc
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 1
push eax
push ecx
push dword [ebp + 0x10]
push ecx
mov ecx, esi
call fcn.004658e0
jmp 0x4668db
cmp eax, 0x213
je 0x466327
cmp eax, 0x102
jne 0x465e20
cmp dword [ebp + 0x10], 0x1b
mov dword [edi], 0
jne 0x465e20
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.004c3ba1
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [ebp + 0xc]
cmp eax, 0x4e
jne 0x466072
cmp dword [ecx + 8], 0xfffffd37
jne 0x465ff2
mov eax, dword [ecx]
cmp eax, dword [esi + 4]
jne 0x465fec
test byte [esi + 0x58], 8
mov byte [esp + 0x1b], 0
jne 0x465f6a
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
cmp eax, dword [esp + 0x1c]
setne byte [esp + 0x1b]
push dword [esi + 0x5c]
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
je 0x465f7e
cmp byte [esp + 0x1b], 0
je 0x465fa6
mov ecx, dword [esp + 0x14]
test byte [ecx + 0x14], 1
je 0x465faa
mov dword [edi], 1
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.004c3ba1
mov esp, ebp
pop ebp
ret 0x18
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x14]
test al, 0x85
jne 0x465fec
test al, 0x10
je 0x465fcf
push dword [esi + 0x44]
push 0
push 0x11f
push dword [esi + 0x5c]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x14]
test al, 0x20
je 0x465fec
push 0
push 0xffff0000
push 0x11f
push dword [esi + 0x5c]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [esp + 0x14]
mov dword [edi], 0
cmp dword [ecx + 8], 0xfffffd3a
jne 0x4660a3
mov eax, dword [ecx]
cmp eax, dword [esi + 4]
je 0x466011
mov dword [edi], 1
jmp 0x4660a3
mov eax, dword [esi + 4]
mov dword [esp + 0x1c], eax
call dword [sym.imp.USER32.dll_GetFocus]
mov edx, dword [esp + 0x1c]
cmp eax, edx
je 0x46604e
test byte [esi + 0x58], 4
je 0x466044
cmp dword [esi + 0xac], 0
jne 0x466044
call dword [sym.imp.USER32.dll_GetFocus]
mov edx, dword [esi + 4]
mov dword [esi + 0xac], eax
push edx
call dword [sym.imp.USER32.dll_SetFocus]
mov edx, dword [esi + 4]
mov ecx, dword [esp + 0x14]
push 0
push dword [ecx + 0xc]
push 0x419
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
and byte [esi + 0x84], 0xcf
push 1
push eax
jmp 0x4664ee
cmp eax, 0x117
jne 0x4660a3
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 1
push eax
push ecx
push dword [ebp + 0x10]
mov ecx, esi
push 0x117
call fcn.00462bf0
cmp dword [esp + 0x10], 0
mov dword [edi], eax
jne 0x4664fb
call fcn.004630a0
mov ecx, dword [ebp + 0xc]
cmp ecx, eax
jne 0x46610b
cmp dword [ebp + 0x10], 0
je 0x4660c0
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x4660ef
xor ecx, ecx
lea eax, [esi + 4]
test esi, esi
cmove eax, ecx
mov dword [edi], eax
lea eax, [ecx + 1]
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.004c3ba1
mov esp, ebp
pop ebp
ret 0x18
xor eax, eax
mov dword [edi], eax
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.004c3ba1
mov esp, ebp
pop ebp
ret 0x18
cmp ecx, 0x112
jne 0x4661c9
mov eax, dword [esi + 0xa8]
cmp eax, 0x12
je 0x46613c
cmp eax, 0x79
jne 0x466133
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test al, al
jns 0x46613c
cmp dword [esi + 0xa8], 0x20
jne 0x466169
cmp dword [ebp + 0x10], 0xf100
jne 0x466169
call dword [sym.imp.USER32.dll_GetFocus]
cmp eax, dword [esi + 4]
jne 0x46617b
mov ecx, esi
call fcn.00465570
push 0
push 0xffffffffffffffff
push 0x448
push dword [esi + 4]
call dword [sym.imp.USER32.dll_PostMessageW]
and byte [esi + 0x84], 0xbf
xor eax, eax
mov dword [edi], eax
test eax, eax
jmp 0x4668e2
cmp dword [esi + 0xa8], 0x20
je 0x466169
test byte [esi + 0x84], 0x40
jne 0x4661b0
mov cl, byte [esi + 0x85]
mov al, cl
and al, 6
cmp al, 2
jne 0x4661a9
test cl, 8
je 0x4661a9
push 1
mov ecx, esi
call fcn.00465510
mov ecx, esi
call fcn.004654e0
and byte [esi + 0x84], 0xbf
mov eax, 1
mov dword [edi], 0
test eax, eax
jmp 0x4668e2
cmp ecx, 0x52e
jne 0x4661ee
mov eax, dword [esi + 0x44]
mov dword [edi], eax
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.004c3ba1
mov esp, ebp
pop ebp
ret 0x18
cmp ecx, 0x120
jne 0x466218
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
push ecx
push dword [ebp + 0x10]
mov dword [esp + 0x1c], 1
push ecx
mov ecx, esi
call fcn.00463120
jmp 0x4668db
cmp ecx, 0x52f
jne 0x46624a
push ecx
mov ecx, dword [esp + 0x18]
push ecx
sub esp, 8
mov ecx, esi
call fcn.00463a20
mov dword [edi], eax
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.004c3ba1
mov esp, ebp
pop ebp
ret 0x18
cmp ecx, 0x52d
jne 0x46626f
mov eax, dword [esi + 4]
mov dword [edi], eax
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.004c3ba1
mov esp, ebp
pop ebp
ret 0x18
cmp ecx, 0x1a
jne 0x4662b0
mov eax, dword [ebp + 0x10]
cmp eax, 0x2a
je 0x46628e
cmp eax, 0x100b
je 0x46628e
cmp eax, 0x1023
jne 0x466327
mov ecx, esi
call fcn.00463ab0
mov dword [edi], 1
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.004c3ba1
mov esp, ebp
pop ebp
ret 0x18
cmp ecx, 0x2b
jne 0x4662d6
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
push ecx
sub esp, 8
mov dword [esp + 0x20], 1
mov ecx, esi
call fcn.00465020
jmp 0x4668db
cmp ecx, 0x2c
je 0x4668bf
cmp ecx, 6
jne 0x466342
mov ecx, dword [ebp + 0x10]
mov al, byte [esi + 0x84]
neg cx
sbb cl, cl
and al, 0x7f
and cl, 0x80
or cl, al
mov byte [esi + 0x84], cl
jl 0x466311
mov al, byte [esi + 0x85]
and al, 6
cmp al, 6
je 0x46658c
push 1
push 0
push dword [esi + 4]
call dword [sym.imp.USER32.dll_InvalidateRect]
push dword [esi + 4]
call dword [sym.imp.USER32.dll_UpdateWindow]
mov dword [edi], 1
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.004c3ba1
mov esp, ebp
pop ebp
ret 0x18
cmp ecx, 0x4e
jne 0x465e20
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 8], 0xfffffff4
jne 0x465e20
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 1
push eax
push ecx
push ecx
mov ecx, esi
call fcn.004652c0
jmp 0x4668db
mov eax, dword [ebp + 0xc]
cmp eax, 1
jne 0x4663a3
push ecx
push ecx
push dword [ebp + 0x10]
mov ecx, esi
push eax
call fcn.00462220
mov dword [edi], eax
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.004c3ba1
mov esp, ebp
pop ebp
ret 0x18
cmp eax, 2
jne 0x4663cf
push ecx
push ecx
push dword [ebp + 0x10]
mov ecx, esi
push eax
call fcn.00462500
mov dword [edi], eax
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.004c3ba1
mov esp, ebp
pop ebp
ret 0x18
cmp eax, 0x14
jne 0x466432
test byte [esi + 0x84], 2
jne 0x466427
test byte [esi + 0x58], 1
jne 0x466427
lea eax, [esp + 0x20]
xorps xmm0, xmm0
push eax
push dword [esi + 4]
movaps xmmword [esp + 0x28], xmm0
call dword [sym.imp.USER32.dll_GetClientRect]
push 5
lea eax, [esp + 0x24]
push eax
push dword [ebp + 0x10]
call dword [sym.imp.USER32.dll_FillRect]
mov dword [edi], 1
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.004c3ba1
mov esp, ebp
pop ebp
ret 0x18
mov dword [edi], 0
jmp 0x4664df
cmp eax, 0x116
jne 0x46646d
push 0
push 0
push 0x447
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [esi + 0x44]
movzx eax, ax
or eax, 0x900000
push eax
push 0x11f
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [edi], 1
jmp 0x4664df
cmp eax, 0x117
jne 0x4664b2
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 1
push eax
push ecx
push dword [ebp + 0x10]
mov ecx, esi
push 0x117
call fcn.00462bf0
cmp dword [esp + 0x10], 0
mov dword [edi], eax
je 0x4664df
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.004c3ba1
mov esp, ebp
pop ebp
ret 0x18
cmp eax, 0x11f
jne 0x4664df
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 1
push eax
push ecx
push dword [ebp + 0x10]
mov ecx, esi
push 0x11f
call fcn.004626e0
cmp dword [esp + 0x10], 0
mov dword [edi], eax
jne 0x4664fb
call fcn.00462910
cmp dword [ebp + 0xc], eax
jne 0x466513
push 0
push dword [ebp + 0x10]
mov ecx, esi
call fcn.00462960
mov dword [edi], 0
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.004c3ba1
mov esp, ebp
pop ebp
ret 0x18
call fcn.004630a0
mov ecx, dword [ebp + 0xc]
cmp ecx, eax
jne 0x466547
sub esp, 8
push dword [ebp + 0x10]
push ecx
mov ecx, esi
call fcn.004630f0
mov dword [edi], eax
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.004c3ba1
mov esp, ebp
pop ebp
ret 0x18
cmp ecx, 0x1a
jne 0x46656b
mov eax, dword [ebp + 0x10]
cmp eax, 0x2a
je 0x466562
cmp eax, 0x100b
je 0x466562
cmp eax, 0x1023
jne 0x4664f5
mov ecx, esi
call fcn.00463ab0
jmp 0x4664f5
cmp ecx, 0x120
je 0x4661f6
cmp ecx, 8
jne 0x46659a
mov al, byte [esi + 0x85]
and al, 6
cmp al, 6
jne 0x466327
push 0
mov ecx, esi
call fcn.00465510
jmp 0x466327
cmp ecx, 0x100
jne 0x466673
mov dl, byte [esi + 0x84]
xor ecx, ecx
test dl, 2
jne 0x466327
mov eax, dword [ebp + 0x10]
cmp eax, 0x20
jne 0x4665de
mov ecx, dword [esp + 0x14]
or ecx, 0x20000000
push ecx
push eax
push 0x104
push dword [esi + 0x5c]
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x4664f5
cmp eax, 0x25
je 0x4665e8
cmp eax, 0x27
jne 0x466666
movzx eax, byte [esi + 0x85]
shr eax, 5
not eax
and eax, 2
or eax, 0x25
mov dword [esp + 0x1c], eax
test dl, 1
jne 0x466666
push 0
push 0
push 0x447
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [esp + 0x1c]
cmp dword [ebp + 0x10], ecx
mov ecx, esi
push eax
jne 0x466628
call fcn.004656e0
jmp 0x46662d
call fcn.00465600
cmp eax, 0xfffffffe
jne 0x466664
push 0
push 0xffffffffffffffff
push 0x448
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, esi
call fcn.004657c0
xor ecx, ecx
mov dword [edi], 0
test al, al
mov eax, 1
cmovne ecx, eax
test ecx, ecx
jmp 0x4668e2
xor ecx, ecx
mov dword [edi], 0
test ecx, ecx
jmp 0x4668e2
cmp ecx, 0x101
jne 0x46669d
test byte [esi + 0x84], 2
jne 0x466327
cmp dword [ebp + 0x10], 0x20
mov dword [edi], 0
jne 0x465e20
jmp 0x4664fb
cmp ecx, 0x102
jne 0x4667f7
test byte [esi + 0x84], 2
jne 0x466327
cmp dword [ebp + 0x10], 0x20
je 0x4664f5
push dword [esi + 0x5c]
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
je 0x465e1a
mov eax, dword [esi + 4]
mov dword [esp + 0x1c], eax
call dword [sym.imp.USER32.dll_GetFocus]
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
jne 0x465e1a
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x14], 0
cmp eax, 0xd
je 0x46672a
lea edx, [esp + 0x14]
movzx eax, ax
push edx
push eax
push 0x45a
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
jne 0x46672a
cmp word [ebp + 0x10], 0x2f
je 0x465e1a
push eax
call dword [sym.imp.USER32.dll_MessageBeep]
jmp 0x465e1a
lea eax, [esp + 0x30]
xorps xmm0, xmm0
push eax
push dword [esi + 4]
movaps xmmword [esp + 0x38], xmm0
call dword [sym.imp.USER32.dll_GetClientRect]
lea eax, [esp + 0x20]
xorps xmm0, xmm0
push eax
push dword [esp + 0x18]
movaps xmmword [esp + 0x28], xmm0
push 0x41d
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [esp + 0x50]
mov dword [esp + 0x60], 0
push eax
push dword [esp + 0x18]
xorps xmm0, xmm0
push 0x417
push dword [esi + 4]
movaps xmmword [esp + 0x60], xmm0
call dword [sym.imp.USER32.dll_SendMessageW]
mov al, byte [esp + 0x58]
test al, 4
je 0x4667d1
test al, 8
jne 0x4667d1
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x38]
jg 0x4667d1
push 0
push 0x28
push 0x100
push dword [esi + 4]
call dword [sym.imp.USER32.dll_PostMessageW]
cmp dword [ebp + 0x10], 0xd
je 0x465e1a
push 0
push dword [esp + 0x18]
push 0x448
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x465e1a
push 0
call dword [sym.imp.USER32.dll_MessageBeep]
mov dword [edi], 0
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.004c3ba1
mov esp, ebp
pop ebp
ret 0x18
cmp ecx, 0x104
je 0x465e1a
cmp ecx, 0x105
je 0x465e1a
cmp ecx, 0x106
je 0x465e1a
cmp ecx, 0x52e
jne 0x466840
mov eax, dword [esi + 0x44]
mov dword [edi], eax
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.004c3ba1
mov esp, ebp
pop ebp
ret 0x18
cmp ecx, 0x52f
jne 0x466872
push ecx
mov ecx, dword [esp + 0x18]
push ecx
sub esp, 8
mov ecx, esi
call fcn.00463a20
mov dword [edi], eax
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.004c3ba1
mov esp, ebp
pop ebp
ret 0x18
cmp ecx, 0x52d
jne 0x466897
mov eax, dword [esi + 4]
mov dword [edi], eax
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.004c3ba1
mov esp, ebp
pop ebp
ret 0x18
cmp ecx, 0x2b
jne 0x4668ba
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
push ecx
sub esp, 8
mov dword [esp + 0x20], 1
mov ecx, esi
call fcn.00465020
jmp 0x4668db
cmp ecx, 0x2c
jne 0x466900
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
push ecx
sub esp, 8
mov dword [esp + 0x20], 1
mov ecx, esi
call fcn.004650c0
mov dword [edi], eax
cmp dword [esp + 0x10], 0
je 0x465e20
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.004c3ba1
mov esp, ebp
pop ebp
ret 0x18
cmp ecx, 0x37f
jne 0x465e20
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 4]
lea eax, [edx - 0x200]
cmp eax, 0xe
ja 0x466927
and byte [esi + 0x85], 0xef
jmp 0x466939
lea eax, [edx - 0x100]
cmp eax, 9
ja 0x466939
or byte [esi + 0x85], 0x10
mov eax, dword [esi]
lea edx, [esp + 0x14]
push 3
push edx
push dword [ecx + 0xc]
mov dword [esp + 0x20], 0
push dword [ecx + 8]
push dword [ecx + 4]
push dword [ecx]
mov ecx, esi
call dword [eax]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x7c]
mov dword [edi], eax
mov eax, 1
pop edi
pop esi
xor ecx, esp
call fcn.004c3ba1
mov esp, ebp
pop ebp
ret 0x18