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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x98
mov esi, esp
mov dword [esi + 0xc], ecx
lea eax, [ebp + 8]
mov dword [esi + 0x10], eax
mov eax, dword [0x43a080]
xor eax, ebp
mov dword [esi + 0x90], eax
mov dword [esi + 0x14], 0x93a26ea4
mov eax, dword [esi + 0x14]
mov dword [esi + 8], eax
sub eax, 0x93a26ea4
je 0x4039fc
jmp 0x4038b4
mov eax, dword [esi + 8]
sub eax, 0xc0e8687a
je 0x403c1e
jmp 0x4038c7
mov eax, dword [esi + 8]
sub eax, 0xd174f789
je 0x403bc8
jmp 0x4038da
mov eax, dword [esi + 8]
sub eax, 0xda70c29c
je 0x403af9
jmp 0x4038ed
mov eax, dword [esi + 8]
sub eax, 0xe745f5b9
je 0x403bad
jmp 0x403900
mov eax, dword [esi + 8]
sub eax, 0xeab9d70b
je 0x403c03
jmp 0x403913
mov eax, dword [esi + 8]
sub eax, 0xec9505a1
je 0x403d4c
jmp 0x403926
mov eax, dword [esi + 8]
sub eax, 0xf6fa3b17
je 0x403be9
jmp 0x403939
mov eax, dword [esi + 8]
sub eax, 0x4fc4217
je 0x403c2a
jmp 0x40394c
mov eax, dword [esi + 8]
sub eax, 0x72a1985
je 0x403d94
jmp 0x40395f
mov eax, dword [esi + 8]
sub eax, 0xc1d1f3c
je 0x403d18
jmp 0x403972
mov eax, dword [esi + 8]
sub eax, 0xd5c7370
je 0x403d04
jmp 0x403985
mov eax, dword [esi + 8]
sub eax, 0x43033794
je 0x403cf8
jmp 0x403998
mov eax, dword [esi + 8]
sub eax, 0x4b8ec071
je 0x403ddc
jmp 0x4039ab
mov eax, dword [esi + 8]
sub eax, 0x5c6dea7d
je 0x403aab
jmp 0x4039be
mov eax, dword [esi + 8]
sub eax, 0x5f15a6be
je 0x403d24
jmp 0x4039d1
mov eax, dword [esi + 8]
sub eax, 0x60d8950d
je 0x403bdd
jmp 0x4039e4
mov eax, dword [esi + 8]
sub eax, 0x7a68f5ea
je 0x403c78
jmp 0x4039f7
jmp 0x403de6
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
push eax
mov edx, esp
mov dword [esi + 4], edx
sub esp, 0x18
mov edx, esp
mov dword [esi + 0x24], edx
sub esp, 0x18
mov edx, esp
mov dword [esi + 0x28], edx
push eax
mov edx, esp
mov dword [esi + 0x2c], edx
mov edx, dword [ecx]
mov dword [esi + 0x30], edx
mov edx, ecx
add edx, 0xc
mov dword [esi + 0x34], edx
mov edx, ecx
add edx, 0x24
mov dword [esi + 0x38], edx
add ecx, 0x3c
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x20], eax
lea ecx, [esi + 0x78]
lea eax, str.hxfdlqlhvq
sub esp, 4
mov dword [esp], eax
call fcn.00418890
lea ecx, [esi + 0x60]
lea eax, str.dsrxsbzcmotfn
sub esp, 4
mov dword [esp], eax
call fcn.00418890
vmovsd xmm0, qword [0x4331d0]
vmovsd qword [esi + 0x18], xmm0
lea ecx, [esi + 0x48]
lea eax, str.prglzwteyqxclmzwcuh
sub esp, 4
mov dword [esp], eax
call fcn.00418890
mov eax, dword [esi + 4]
mov byte [eax], 0
mov ecx, dword [esi + 0x24]
lea eax, str.prglzwteyqxclmzwcuh
sub esp, 4
mov dword [esp], eax
call fcn.00418890
mov dword [esi + 0x14], 0x5c6dea7d
jmp 0x403de6
mov eax, dword [0x43b5d4]
mov ecx, dword [0x43b5d0]
mov edx, eax
sub edx, 0x5ca5dc23
sub edx, 1
add edx, 0x5ca5dc23
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, 0x72a1985
mov ecx, 0xda70c29c
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x14], eax
jmp 0x403de6
mov ecx, dword [esi + 0x28]
lea eax, str.prglzwteyqxclmzwcuh
sub esp, 4
mov dword [esp], eax
call fcn.00418890
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x28]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004191c0
add esp, 8
and al, 1
mov byte [esi + 0x42], al
mov ecx, dword [esi + 0x28]
call fcn.00418d30
mov ecx, dword [esi + 0x24]
call fcn.00418d30
mov ecx, dword [0x43b5d4]
mov eax, dword [0x43b5d0]
mov edx, ecx
sub edx, 0xd75db4c8
sub edx, 1
add edx, 0xd75db4c8
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, 0x72a1985
mov ecx, 0xe745f5b9
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x14], eax
jmp 0x403de6
mov dl, byte [esi + 0x42]
mov eax, 0x5f15a6be
mov ecx, 0xd174f789
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x14], eax
jmp 0x403de6
mov eax, dword [esi + 0x2c]
mov dword [eax], 0x14
mov dword [esi + 0x14], 0x60d8950d
jmp 0x403de6
mov dword [esi + 0x14], 0xf6fa3b17
jmp 0x403de6
mov eax, dword [esi + 0x2c]
cmp dword [eax], 0
setg al
and al, 1
mov byte [esi + 0x43], al
mov dword [esi + 0x14], 0xeab9d70b
jmp 0x403de6
mov dl, byte [esi + 0x43]
mov eax, 0xc1d1f3c
mov ecx, 0xc0e8687a
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x14], eax
jmp 0x403de6
mov dword [esi + 0x14], 0x4fc4217
jmp 0x403de6
mov eax, dword [0x43b5d4]
mov ecx, dword [0x43b5d0]
mov edx, eax
add edx, 0x926da36a
sub edx, 1
sub edx, 0x926da36a
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, 0x4b8ec071
mov ecx, 0x7a68f5ea
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x14], eax
jmp 0x403de6
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
add eax, 0x5d5b4ac5
add eax, 0xffffffff
sub eax, 0x5d5b4ac5
mov dword [esi + 0x44], eax
mov ecx, dword [0x43b5d4]
mov eax, dword [0x43b5d0]
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, 0x4b8ec071
mov ecx, 0x43033794
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x14], eax
jmp 0x403de6
mov dword [esi + 0x14], 0xd5c7370
jmp 0x403de6
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x44]
mov dword [eax], ecx
mov dword [esi + 0x14], 0xf6fa3b17
jmp 0x403de6
mov dword [esi + 0x14], 0x5f15a6be
jmp 0x403de6
mov ecx, dword [esi + 0x30]
lea eax, str.ujlneedfnyda
sub esp, 4
mov dword [esp], eax
call fcn.00418890
lea ecx, [esi + 0x48]
call fcn.00418d30
mov dword [esi + 0x14], 0xec9505a1
jmp 0x403de6
lea ecx, [esi + 0x60]
call fcn.00418d30
lea ecx, [esi + 0x78]
call fcn.00418d30
mov ecx, dword [esi + 0x34]
call fcn.00418d30
mov ecx, dword [esi + 0x38]
call fcn.00418d30
mov ecx, dword [esi + 0x3c]
call fcn.00418d30
mov eax, dword [esi + 0x10]
mov eax, dword [eax]
mov dword [esi], eax
mov ecx, dword [esi + 0x90]
xor ecx, ebp
call fcn.00423960
mov eax, dword [esi]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x60
mov ecx, dword [esi + 0x28]
lea eax, str.prglzwteyqxclmzwcuh
sub esp, 4
mov dword [esp], eax
call fcn.00418890
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x28]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004191c0
add esp, 8
mov ecx, dword [esi + 0x28]
call fcn.00418d30
mov ecx, dword [esi + 0x24]
call fcn.00418d30
mov dword [esi + 0x14], 0xda70c29c
jmp 0x403de6
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x14], 0x7a68f5ea
jmp 0x40389e