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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x80
mov esi, esp
mov dword [esi + 0x10], ecx
lea eax, [ebp + 8]
mov dword [esi + 0x14], eax
mov eax, dword [0x43d080]
xor eax, ebp
mov dword [esi + 0x78], eax
mov ecx, dword [0x43e5a4]
mov eax, dword [0x43e5a0]
mov edx, ecx
add edx, 0xd9397387
sub edx, 1
sub edx, 0xd9397387
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete cl
and cl, 1
mov byte [esi + 0x22], cl
cmp eax, 0xa
setl al
and al, 1
mov byte [esi + 0x23], al
mov dword [esi + 0x1c], 0x460781a
mov eax, dword [esi + 0x1c]
mov dword [esi + 0xc], eax
sub eax, 0x80cbbd57
je 0x407865
jmp 0x4070ba
mov eax, dword [esi + 0xc]
sub eax, 0x8224af83
je 0x4074d3
jmp 0x4070cd
mov eax, dword [esi + 0xc]
sub eax, 0x8dfcec80
je 0x407c23
jmp 0x4070e0
mov eax, dword [esi + 0xc]
sub eax, 0xa4438918
je 0x4077b2
jmp 0x4070f3
mov eax, dword [esi + 0xc]
sub eax, 0xa8cc3c3f
je 0x407980
jmp 0x407106
mov eax, dword [esi + 0xc]
sub eax, 0xaa1e41de
je 0x4077a6
jmp 0x407119
mov eax, dword [esi + 0xc]
sub eax, 0xab4f1cfa
je 0x407b07
jmp 0x40712c
mov eax, dword [esi + 0xc]
sub eax, 0xaee45b60
je 0x40792a
jmp 0x40713f
mov eax, dword [esi + 0xc]
sub eax, 0xbe8bd037
je 0x4075ae
jmp 0x407152
mov eax, dword [esi + 0xc]
sub eax, 0xc39062bc
je 0x407a75
jmp 0x407165
mov eax, dword [esi + 0xc]
sub eax, 0xc5f032ba
je 0x4079b0
jmp 0x407178
mov eax, dword [esi + 0xc]
sub eax, 0xc68fc4ae
je 0x407c2f
jmp 0x40718b
mov eax, dword [esi + 0xc]
sub eax, 0xc9ada760
je 0x4076d0
jmp 0x40719e
mov eax, dword [esi + 0xc]
sub eax, 0xced9d4ab
je 0x407a1b
jmp 0x4071b1
mov eax, dword [esi + 0xc]
sub eax, 0xd577856a
je 0x4074fe
jmp 0x4071c4
mov eax, dword [esi + 0xc]
sub eax, 0xda05b686
je 0x407acb
jmp 0x4071d7
mov eax, dword [esi + 0xc]
sub eax, 0xe4546ff8
je 0x40771e
jmp 0x4071ea
mov eax, dword [esi + 0xc]
sub eax, 0xe4766e8f
je 0x4076b0
jmp 0x4071fd
mov eax, dword [esi + 0xc]
sub eax, 0xf2081f35
je 0x4077c6
jmp 0x407210
mov eax, dword [esi + 0xc]
sub eax, 0xf22c093d
je 0x407ba3
jmp 0x407223
mov eax, dword [esi + 0xc]
sub eax, 0xf4bdabf1
je 0x407817
jmp 0x407236
mov eax, dword [esi + 0xc]
sub eax, 0xf93c7970
je 0x4078d8
jmp 0x407249
mov eax, dword [esi + 0xc]
sub eax, 0x2a27413
je 0x4075c2
jmp 0x40725c
mov eax, dword [esi + 0xc]
sub eax, 0x33659ea
je 0x407adf
jmp 0x40726f
mov eax, dword [esi + 0xc]
sub eax, 0x3c4c259
je 0x407aa4
jmp 0x407282
mov eax, dword [esi + 0xc]
sub eax, 0x460781a
je 0x4073f0
jmp 0x407295
mov eax, dword [esi + 0xc]
sub eax, 0x4e7d1d5
je 0x407bfb
jmp 0x4072a8
mov eax, dword [esi + 0xc]
sub eax, 0xafe773b
je 0x407695
jmp 0x4072bb
mov eax, dword [esi + 0xc]
sub eax, 0x169e6b78
je 0x407bce
jmp 0x4072ce
mov eax, dword [esi + 0xc]
sub eax, 0x18e0f4ab
je 0x407b4d
jmp 0x4072e1
mov eax, dword [esi + 0xc]
sub eax, 0x27d394dc
je 0x4075dc
jmp 0x4072f4
mov eax, dword [esi + 0xc]
sub eax, 0x28862a64
je 0x407a89
jmp 0x407307
mov eax, dword [esi + 0xc]
sub eax, 0x2b0d77ba
je 0x407c0f
jmp 0x40731a
mov eax, dword [esi + 0xc]
sub eax, 0x3222838f
je 0x407647
jmp 0x40732d
mov eax, dword [esi + 0xc]
sub eax, 0x4dc1f052
je 0x4076bc
jmp 0x407340
mov eax, dword [esi + 0xc]
sub eax, 0x4df8e735
je 0x407a69
jmp 0x407353
mov eax, dword [esi + 0xc]
sub eax, 0x55dccab7
je 0x4074df
jmp 0x407366
mov eax, dword [esi + 0xc]
sub eax, 0x67e533f9
je 0x40743b
jmp 0x407379
mov eax, dword [esi + 0xc]
sub eax, 0x71a9a00e
je 0x407bda
jmp 0x40738c
mov eax, dword [esi + 0xc]
sub eax, 0x72460cad
je 0x407ab0
jmp 0x40739f
mov eax, dword [esi + 0xc]
sub eax, 0x7637765b
je 0x407bc2
jmp 0x4073b2
mov eax, dword [esi + 0xc]
sub eax, 0x77f9a844
je 0x40799b
jmp 0x4073c5
mov eax, dword [esi + 0xc]
sub eax, 0x783dde6b
je 0x407aeb
jmp 0x4073d8
mov eax, dword [esi + 0xc]
sub eax, 0x79532b70
je 0x4078e4
jmp 0x4073eb
jmp 0x407c3e
mov bl, byte [esi + 0x22]
mov dh, byte [esi + 0x23]
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov dl, al
and dl, 0
and bl, cl
mov ch, ah
and ch, 0
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or dl, al
mov eax, 0x7637765b
mov ecx, 0x67e533f9
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x1c], eax
jmp 0x407c3e
push eax
mov eax, esp
mov dword [esi + 0x24], eax
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [esi + 0x28], eax
push eax
mov eax, esp
mov dword [esi + 0x2c], eax
push eax
mov eax, esp
mov dword [esi + 0x30], eax
push eax
mov eax, esp
mov dword [esi + 0x34], eax
mov ecx, dword [0x43e5a4]
mov eax, dword [0x43e5a0]
mov edx, ecx
add edx, 0xd25e1a07
sub edx, 1
sub edx, 0xd25e1a07
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and bl, cl
mov ch, ah
and ch, 0xff
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0x7637765b
mov ecx, 0x8224af83
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x1c], eax
jmp 0x407c3e
mov dword [esi + 0x1c], 0x55dccab7
jmp 0x407c3e
push eax
mov eax, esp
mov dword [esi + 0x38], eax
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [esi + 0x3c], eax
mov dword [esi + 0x1c], 0xd577856a
jmp 0x407c3e
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
push eax
sub esp, 0x14
mov edx, esp
mov dword [esi + 0x40], edx
push eax
mov edx, esp
mov dword [esi + 8], edx
push eax
mov edx, esp
mov dword [esi + 0x44], edx
sub esp, 0x18
mov edx, esp
mov dword [esi + 0x48], edx
sub esp, 0x18
mov edx, esp
mov dword [esi + 0x4c], edx
push eax
mov edx, esp
mov dword [esi + 0x50], edx
mov dword [esi + 0x54], eax
add eax, 0x1c
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x24]
mov dword [eax], ecx
mov eax, dword [esi + 0x24]
mov eax, dword [esi + 0x28]
vmovsd xmm0, qword [0x436220]
vmovsd qword [eax], xmm0
mov eax, dword [esi + 0x2c]
mov dword [eax], 0x7e7
mov eax, dword [esi + 0x30]
mov byte [eax], 0
mov eax, dword [esi + 0x34]
mov dword [eax], 0x84e
mov eax, dword [esi + 0x38]
mov byte [eax], 0
mov eax, dword [esi + 0x3c]
vmovsd xmm0, qword [0x436218]
vmovsd qword [eax], xmm0
mov ecx, dword [esi + 0x40]
lea eax, str.cpuczyngovpvkkxrreqnpwyocwjiijwgqvbbhdhiheoq
sub esp, 4
mov dword [esp], eax
call fcn.0041d140
mov eax, dword [esi + 8]
mov dword [eax], 0x1f03
mov eax, dword [esi + 0x44]
mov dword [eax], 0xf
mov dword [esi + 0x1c], 0xbe8bd037
jmp 0x407c3e
mov eax, dword [esi + 0x44]
mov eax, dword [eax]
mov dword [esi + 0x5c], eax
mov dword [esi + 0x1c], 0x2a27413
jmp 0x407c3e
mov eax, dword [esi + 0x5c]
cmp eax, 0
setg al
and al, 1
mov byte [esi + 0x63], al
mov dword [esi + 0x1c], 0x27d394dc
jmp 0x407c3e
mov ecx, dword [0x43e5a4]
mov eax, dword [0x43e5a0]
xor edi, edi
sub edi, 1
mov edx, ecx
add edx, edi
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov dl, al
and dl, 0
and bl, cl
mov ch, ah
and ch, 0
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or dl, al
mov eax, 0x169e6b78
mov ecx, 0x3222838f
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x1c], eax
jmp 0x407c3e
mov eax, dword [0x43e5a4]
mov ecx, dword [0x43e5a0]
mov edx, eax
sub edx, 0xd2e5e461
sub edx, 1
add edx, 0xd2e5e461
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x169e6b78
mov ecx, 0xafe773b
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x1c], eax
jmp 0x407c3e
mov dl, byte [esi + 0x63]
mov eax, 0xf2081f35
mov ecx, 0xe4766e8f
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x1c], eax
jmp 0x407c3e
mov dword [esi + 0x1c], 0x4dc1f052
jmp 0x407c3e
mov eax, dword [esi + 0x44]
mov eax, dword [eax]
mov dword [esi + 0x64], eax
mov dword [esi + 0x1c], 0xc9ada760
jmp 0x407c3e
mov eax, dword [0x43e5a4]
mov ecx, dword [0x43e5a0]
mov edx, eax
add edx, 0x735eb0c
sub edx, 1
sub edx, 0x735eb0c
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x71a9a00e
mov ecx, 0xe4546ff8
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x1c], eax
jmp 0x407c3e
mov eax, dword [esi + 0x64]
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, 0xffffffff
add ecx, eax
xor eax, eax
sub eax, ecx
mov dword [esi + 0x68], eax
mov ecx, dword [0x43e5a4]
mov eax, dword [0x43e5a0]
mov edx, ecx
add edx, 0x4116c758
sub edx, 1
sub edx, 0x4116c758
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov dl, al
and dl, 0
and bl, cl
mov ch, ah
and ch, 0
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or dl, al
mov eax, 0x71a9a00e
mov ecx, 0xaa1e41de
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x1c], eax
jmp 0x407c3e
mov dword [esi + 0x1c], 0xa4438918
jmp 0x407c3e
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x68]
mov dword [eax], ecx
mov dword [esi + 0x1c], 0xbe8bd037
jmp 0x407c3e
mov ecx, dword [esi + 0x48]
lea eax, str.cpuczyngovpvkkxrreqnpwyocwjiijwgqvbbhdhiheoq
sub esp, 4
mov dword [esp], eax
call fcn.0041d140
mov ecx, dword [esi + 0x4c]
lea eax, str.cpuczyngovpvkkxrreqnpwyocwjiijwgqvbbhdhiheoq
sub esp, 4
mov dword [esp], eax
call fcn.0041d140
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x4c]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0041d320
add esp, 8
and al, 1
mov byte [esi + 0x6f], al
mov dword [esi + 0x1c], 0xf4bdabf1
jmp 0x407c3e
mov eax, dword [0x43e5a4]
mov ecx, dword [0x43e5a0]
mov edx, eax
sub edx, 0x1ba283e8
sub edx, 1
add edx, 0x1ba283e8
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x4e7d1d5
mov ecx, 0x80cbbd57
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x1c], eax
jmp 0x407c3e
mov ecx, dword [esi + 0x4c]
call fcn.0041cff0
mov ecx, dword [0x43e5a4]
mov eax, dword [0x43e5a0]
xor edi, edi
sub edi, 1
mov edx, ecx
add edx, edi
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and bl, cl
mov ch, ah
and ch, 0xff
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0x4e7d1d5
mov ecx, 0xf93c7970
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x1c], eax
jmp 0x407c3e
mov dword [esi + 0x1c], 0x79532b70
jmp 0x407c3e
mov eax, dword [0x43e5a4]
mov ecx, dword [0x43e5a0]
xor edi, edi
sub edi, 1
mov edx, eax
add edx, edi
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x2b0d77ba
mov ecx, 0xaee45b60
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x1c], eax
jmp 0x407c3e
mov ecx, dword [esi + 0x48]
call fcn.0041cff0
mov eax, dword [0x43e5a4]
mov ecx, dword [0x43e5a0]
mov edx, eax
sub edx, 0x18790a08
sub edx, 1
add edx, 0x18790a08
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x2b0d77ba
mov ecx, 0xa8cc3c3f
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x1c], eax
jmp 0x407c3e
mov dl, byte [esi + 0x6f]
mov eax, 0x783dde6b
mov ecx, 0x77f9a844
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x1c], eax
jmp 0x407c3e
mov eax, dword [esi + 0x50]
mov dword [eax], 0x18
mov dword [esi + 0x1c], 0xc5f032ba
jmp 0x407c3e
mov ecx, dword [0x43e5a4]
mov eax, dword [0x43e5a0]
xor edi, edi
sub edi, 1
mov edx, ecx
add edx, edi
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and bl, cl
mov ch, ah
and ch, 0xff
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0x8dfcec80
mov ecx, 0xced9d4ab
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x1c], eax
jmp 0x407c3e
mov eax, dword [0x43e5a4]
mov ecx, dword [0x43e5a0]
mov edx, eax
sub edx, 0x6ca6bb8d
sub edx, 1
add edx, 0x6ca6bb8d
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x8dfcec80
mov ecx, 0x4df8e735
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x1c], eax
jmp 0x407c3e
mov dword [esi + 0x1c], 0xc39062bc
jmp 0x407c3e
mov eax, dword [esi + 0x50]
mov eax, dword [eax]
mov dword [esi + 0x70], eax
mov dword [esi + 0x1c], 0x28862a64
jmp 0x407c3e
mov edx, dword [esi + 0x70]
mov eax, 0x33659ea
mov ecx, 0x3c4c259
cmp edx, 0
cmovg eax, ecx
mov dword [esi + 0x1c], eax
jmp 0x407c3e
mov dword [esi + 0x1c], 0x72460cad
jmp 0x407c3e
mov eax, dword [esi + 0x50]
mov eax, dword [eax]
xor ecx, ecx
sub ecx, 0xffffffff
sub eax, ecx
mov dword [esi + 0x74], eax
mov dword [esi + 0x1c], 0xda05b686
jmp 0x407c3e
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x74]
mov dword [eax], ecx
mov dword [esi + 0x1c], 0xc39062bc
jmp 0x407c3e
mov dword [esi + 0x1c], 0x783dde6b
jmp 0x407c3e
mov ecx, dword [esi + 0x40]
call fcn.0041cff0
mov ecx, dword [esi + 0x54]
call fcn.0041cff0
mov dword [esi + 0x1c], 0xab4f1cfa
jmp 0x407c3e
mov eax, dword [0x43e5a4]
mov ecx, dword [0x43e5a0]
xor edi, edi
sub edi, 1
mov edx, eax
add edx, edi
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0xc68fc4ae
mov ecx, 0x18e0f4ab
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x1c], eax
jmp 0x407c3e
mov ecx, dword [esi + 0x58]
call fcn.0041cff0
mov eax, dword [0x43e5a4]
mov ecx, dword [0x43e5a0]
mov edx, eax
sub edx, 0x84f93fb8
sub edx, 1
add edx, 0x84f93fb8
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0xc68fc4ae
mov ecx, 0xf22c093d
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x1c], eax
jmp 0x407c3e
mov eax, 0x13b37
mov dword [esi + 4], eax
mov ecx, dword [esi + 0x78]
xor ecx, ebp
call fcn.004270e0
mov eax, dword [esi + 4]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x60
mov dword [esi + 0x1c], 0x67e533f9
jmp 0x407c3e
mov dword [esi + 0x1c], 0x3222838f
jmp 0x407c3e
mov eax, dword [esi + 0x64]
mov eax, dword [esi + 0x64]
mov eax, dword [esi + 0x64]
mov eax, dword [esi + 0x64]
mov eax, dword [esi + 0x64]
mov eax, dword [esi + 0x64]
mov eax, dword [esi + 0x64]
mov dword [esi + 0x1c], 0xe4546ff8
jmp 0x407c3e
mov ecx, dword [esi + 0x4c]
call fcn.0041cff0
mov dword [esi + 0x1c], 0x80cbbd57
jmp 0x407c3e
mov ecx, dword [esi + 0x48]
call fcn.0041cff0
mov dword [esi + 0x1c], 0xaee45b60
jmp 0x407c3e
mov dword [esi + 0x1c], 0xced9d4ab
jmp 0x407c3e
mov ecx, dword [esi + 0x58]
call fcn.0041cff0
mov dword [esi + 0x1c], 0x18e0f4ab
jmp 0x4070a4