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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x90
mov esi, esp
mov dword [esi + 0x14], ecx
vmovsd xmm0, qword [ebp + 0x10]
vmovsd qword [esi + 0x18], xmm0
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x20], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x24], eax
mov eax, dword [0x4e0080]
xor eax, ebp
mov dword [esi + 0x88], eax
mov ecx, dword [0x4e15f4]
mov eax, dword [0x4e15f0]
mov edx, ecx
add edx, 0x1dde66f5
sub edx, 1
sub edx, 0x1dde66f5
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete cl
and cl, 1
mov byte [esi + 0x32], cl
cmp eax, 0xa
setl al
and al, 1
mov byte [esi + 0x33], al
mov dword [esi + 0x2c], 0xea0071a9
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x10], eax
sub eax, 0x82b9e36e
je 0x403585
jmp 0x4028cd
mov eax, dword [esi + 0x10]
sub eax, 0x8f4f02dd
je 0x403b93
jmp 0x4028e0
mov eax, dword [esi + 0x10]
sub eax, 0x9220a002
je 0x4031e5
jmp 0x4028f3
mov eax, dword [esi + 0x10]
sub eax, 0x9222b778
je 0x4037f6
jmp 0x402906
mov eax, dword [esi + 0x10]
sub eax, 0x92a68ff7
je 0x4038c4
jmp 0x402919
mov eax, dword [esi + 0x10]
sub eax, 0x9436d6d0
je 0x403a1a
jmp 0x40292c
mov eax, dword [esi + 0x10]
sub eax, 0x983fc188
je 0x402f90
jmp 0x40293f
mov eax, dword [esi + 0x10]
sub eax, 0x9a6571d2
je 0x403ce3
jmp 0x402952
mov eax, dword [esi + 0x10]
sub eax, 0x9f25d0cd
je 0x403196
jmp 0x402965
mov eax, dword [esi + 0x10]
sub eax, 0x9f86a66c
je 0x403e01
jmp 0x402978
mov eax, dword [esi + 0x10]
sub eax, 0xa0ae7c7c
je 0x403310
jmp 0x40298b
mov eax, dword [esi + 0x10]
sub eax, 0xa3aba3f6
je 0x40383c
jmp 0x40299e
mov eax, dword [esi + 0x10]
sub eax, 0xa3c923c9
je 0x403429
jmp 0x4029b1
mov eax, dword [esi + 0x10]
sub eax, 0xac2dfae2
je 0x403591
jmp 0x4029c4
mov eax, dword [esi + 0x10]
sub eax, 0xae74354b
je 0x403e52
jmp 0x4029d7
mov eax, dword [esi + 0x10]
sub eax, 0xb092c4c6
je 0x403912
jmp 0x4029ea
mov eax, dword [esi + 0x10]
sub eax, 0xb70f6822
je 0x403851
jmp 0x4029fd
mov eax, dword [esi + 0x10]
sub eax, 0xb7691c1e
je 0x403adb
jmp 0x402a10
mov eax, dword [esi + 0x10]
sub eax, 0xb8b96c08
je 0x403685
jmp 0x402a23
mov eax, dword [esi + 0x10]
sub eax, 0xbe826bfe
je 0x403d7d
jmp 0x402a36
mov eax, dword [esi + 0x10]
sub eax, 0xcf0067e7
je 0x403e2e
jmp 0x402a49
mov eax, dword [esi + 0x10]
sub eax, 0xd9d8d7ce
je 0x40312d
jmp 0x402a5c
mov eax, dword [esi + 0x10]
sub eax, 0xdcff1bcf
je 0x403b87
jmp 0x402a6f
mov eax, dword [esi + 0x10]
sub eax, 0xde8a3801
je 0x403337
jmp 0x402a82
mov eax, dword [esi + 0x10]
sub eax, 0xe35cf43b
je 0x403b7b
jmp 0x402a95
mov eax, dword [esi + 0x10]
sub eax, 0xea0071a9
je 0x402e50
jmp 0x402aa8
mov eax, dword [esi + 0x10]
sub eax, 0xef383f00
je 0x402f84
jmp 0x402abb
mov eax, dword [esi + 0x10]
sub eax, 0xf6efdbd9
je 0x403e22
jmp 0x402ace
mov eax, dword [esi + 0x10]
sub eax, 0xfcf1a48e
je 0x403be1
jmp 0x402ae1
mov eax, dword [esi + 0x10]
sub eax, 0xfef2a801
je 0x40379f
jmp 0x402af4
mov eax, dword [esi + 0x10]
sub eax, 0x1712a3d
je 0x4032f5
jmp 0x402b07
mov eax, dword [esi + 0x10]
sub eax, 0x238956f
je 0x40303d
jmp 0x402b1a
mov eax, dword [esi + 0x10]
sub eax, 0x7797400
je 0x403455
jmp 0x402b2d
mov eax, dword [esi + 0x10]
sub eax, 0x8c0fe21
je 0x402fd2
jmp 0x402b40
mov eax, dword [esi + 0x10]
sub eax, 0xd6cb96f
je 0x40372b
jmp 0x402b53
mov eax, dword [esi + 0x10]
sub eax, 0xe03f756
je 0x40391e
jmp 0x402b66
mov eax, dword [esi + 0x10]
sub eax, 0xe49df75
je 0x4031fd
jmp 0x402b79
mov eax, dword [esi + 0x10]
sub eax, 0xf516fd8
je 0x403e99
jmp 0x402b8c
mov eax, dword [esi + 0x10]
sub eax, 0x129d4674
je 0x4037b6
jmp 0x402b9f
mov eax, dword [esi + 0x10]
sub eax, 0x163df353
je 0x403991
jmp 0x402bb2
mov eax, dword [esi + 0x10]
sub eax, 0x1694817c
je 0x403435
jmp 0x402bc5
mov eax, dword [esi + 0x10]
sub eax, 0x187aa0dc
je 0x4039f0
jmp 0x402bd8
mov eax, dword [esi + 0x10]
sub eax, 0x18c85b65
je 0x403217
jmp 0x402beb
mov eax, dword [esi + 0x10]
sub eax, 0x1b9e119c
je 0x403691
jmp 0x402bfe
mov eax, dword [esi + 0x10]
sub eax, 0x1c8f3319
je 0x403d71
jmp 0x402c11
mov eax, dword [esi + 0x10]
sub eax, 0x1f5bdaa6
je 0x403148
jmp 0x402c24
mov eax, dword [esi + 0x10]
sub eax, 0x2163e990
je 0x403ae7
jmp 0x402c37
mov eax, dword [esi + 0x10]
sub eax, 0x25367582
je 0x403d4e
jmp 0x402c4a
mov eax, dword [esi + 0x10]
sub eax, 0x25e83930
je 0x4034af
jmp 0x402c5d
mov eax, dword [esi + 0x10]
sub eax, 0x2bf76e48
je 0x403579
jmp 0x402c70
mov eax, dword [esi + 0x10]
sub eax, 0x2dba576d
je 0x403a74
jmp 0x402c83
mov eax, dword [esi + 0x10]
sub eax, 0x2f971405
je 0x403793
jmp 0x402c96
mov eax, dword [esi + 0x10]
sub eax, 0x2fcb38f9
je 0x403e7c
jmp 0x402ca9
mov eax, dword [esi + 0x10]
sub eax, 0x301bcd1a
je 0x402e9b
jmp 0x402cbc
mov eax, dword [esi + 0x10]
sub eax, 0x306e0af5
je 0x403b35
jmp 0x402ccf
mov eax, dword [esi + 0x10]
sub eax, 0x32827b3a
je 0x4034fd
jmp 0x402ce2
mov eax, dword [esi + 0x10]
sub eax, 0x33db5d98
je 0x403282
jmp 0x402cf5
mov eax, dword [esi + 0x10]
sub eax, 0x36f0e848
je 0x40331c
jmp 0x402d08
mov eax, dword [esi + 0x10]
sub eax, 0x379df3ad
je 0x4037c2
jmp 0x402d1b
mov eax, dword [esi + 0x10]
sub eax, 0x43823e98
je 0x4031f1
jmp 0x402d2e
mov eax, dword [esi + 0x10]
sub eax, 0x44196335
je 0x403c64
jmp 0x402d41
mov eax, dword [esi + 0x10]
sub eax, 0x4c3f278e
je 0x403e16
jmp 0x402d54
mov eax, dword [esi + 0x10]
sub eax, 0x51cd607d
je 0x4036b8
jmp 0x402d67
mov eax, dword [esi + 0x10]
sub eax, 0x53771207
je 0x4039fc
jmp 0x402d7a
mov eax, dword [esi + 0x10]
sub eax, 0x54b52984
je 0x4033b6
mov bl, byte [esi + 0x32]
mov dh, byte [esi + 0x33]
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, 0x1c8f3319
mov ecx, 0x301bcd1a
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
push eax
push eax
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [esi + 0x34], eax
push eax
mov eax, esp
mov dword [esi + 0x38], eax
push eax
mov eax, esp
mov dword [esi + 0x3c], eax
push eax
mov eax, esp
mov dword [esi + 0x40], eax
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [esi + 0x44], eax
push eax
sub esp, 0x14
mov eax, esp
mov dword [esi + 0x48], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 0x4c], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 0x50], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 0x54], eax
push eax
mov eax, esp
mov dword [esi + 0x58], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 0x5c], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 0x60], eax
push eax
mov eax, esp
mov dword [esi + 0x64], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 0x68], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 0x6c], eax
push eax
mov eax, esp
mov dword [esi + 0x70], eax
mov ecx, dword [0x4e15f4]
mov eax, dword [0x4e15f0]
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, 0x1c8f3319
mov ecx, 0xef383f00
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov dword [esi + 0x2c], 0x983fc188
jmp 0x403ec8
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x24]
mov edi, dword [esi + 0x20]
vmovsd xmm0, qword [esi + 0x18]
mov eax, dword [esi + 0x34]
vmovsd qword [eax], xmm0
mov eax, dword [esi + 0x38]
mov dword [eax], edi
mov eax, dword [esi + 0x3c]
mov dword [eax], edx
mov eax, dword [esi + 0x40]
mov dword [eax], ecx
mov eax, dword [esi + 0x40]
mov eax, dword [esi + 0x44]
vmovsd xmm0, qword [0x42c1a8]
vmovsd qword [eax], xmm0
mov dword [esi + 0x2c], 0x8c0fe21
jmp 0x403ec8
mov ecx, dword [0x4e15f4]
mov eax, dword [0x4e15f0]
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, 0xbe826bfe
mov ecx, 0x238956f
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov ecx, dword [esi + 0x48]
lea eax, str.oifyipikrubqvkwbyox
sub esp, 4
mov dword [esp], eax
call fcn.00413cf0
mov ecx, dword [esi + 0x4c]
lea eax, str.ckocmbkoitxlzcissppmlfypwm
sub esp, 4
mov dword [esp], eax
call fcn.00413cf0
mov ecx, dword [esi + 0x50]
lea eax, str.oifyipikrubqvkwbyox
sub esp, 4
mov dword [esp], eax
call fcn.00413cf0
mov ecx, dword [esi + 0x54]
lea eax, str.oifyipikrubqvkwbyox
sub esp, 4
mov dword [esp], eax
call fcn.00413cf0
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00414220
add esp, 8
and al, 1
mov byte [esi + 0x76], al
mov ecx, dword [esi + 0x54]
call fcn.00413f60
mov ecx, dword [esi + 0x50]
call fcn.00413f60
mov ecx, dword [0x4e15f4]
mov eax, dword [0x4e15f0]
mov edx, ecx
sub edx, 0x96cdbac3
sub edx, 1
add edx, 0x96cdbac3
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, 0xbe826bfe
mov ecx, 0xd9d8d7ce
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov dl, byte [esi + 0x76]
mov eax, 0x1694817c
mov ecx, 0x1f5bdaa6
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov eax, dword [0x4e15f4]
mov ecx, dword [0x4e15f0]
mov edx, eax
add edx, 0x8f5a725d
sub edx, 1
sub edx, 0x8f5a725d
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, 0x9f86a66c
mov ecx, 0x9f25d0cd
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov eax, dword [esi + 0x58]
mov dword [eax], 0x1c
mov eax, dword [0x4e15f4]
mov ecx, dword [0x4e15f0]
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, 0x9f86a66c
mov ecx, 0x9220a002
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov dword [esi + 0x2c], 0x43823e98
jmp 0x403ec8
mov dword [esi + 0x2c], 0xe49df75
jmp 0x403ec8
mov eax, dword [esi + 0x58]
cmp dword [eax], 0
setg al
and al, 1
mov byte [esi + 0x77], al
mov dword [esi + 0x2c], 0x18c85b65
jmp 0x403ec8
mov ecx, dword [0x4e15f4]
mov eax, dword [0x4e15f0]
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, 0x4c3f278e
mov ecx, 0x33db5d98
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov ecx, dword [0x4e15f4]
mov eax, dword [0x4e15f0]
mov edx, ecx
sub edx, 0x48f46155
sub edx, 1
add edx, 0x48f46155
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, 0x4c3f278e
mov ecx, 0x1712a3d
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov dl, byte [esi + 0x77]
mov eax, 0x6951353d
mov ecx, 0xa0ae7c7c
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov dword [esi + 0x2c], 0x36f0e848
jmp 0x403ec8
mov eax, dword [esi + 0x58]
mov eax, dword [eax]
xor ecx, ecx
sub ecx, 0xffffffff
sub eax, ecx
mov dword [esi + 0x78], eax
mov dword [esi + 0x2c], 0xde8a3801
jmp 0x403ec8
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x78]
mov dword [eax], ecx
mov dword [esi + 0x2c], 0xe49df75
jmp 0x403ec8
mov dword [esi + 0x2c], 0x1694817c
jmp 0x403ec8
mov ecx, dword [esi + 0x5c]
lea eax, str.oifyipikrubqvkwbyox
sub esp, 4
mov dword [esp], eax
call fcn.00413cf0
mov dword [esi + 0x2c], 0x7797400
jmp 0x403ec8
mov ecx, dword [esi + 0x60]
lea eax, str.oifyipikrubqvkwbyox
sub esp, 4
mov dword [esp], eax
call fcn.00413cf0
mov eax, dword [esi + 0x5c]
mov ecx, dword [esi + 0x60]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00414220
add esp, 8
mov byte [esi + 0xf], al
mov ecx, dword [esi + 0x60]
call fcn.00413f60
mov ecx, dword [esi + 0x5c]
call fcn.00413f60
mov dl, byte [esi + 0xf]
mov eax, 0x379df3ad
mov ecx, 0x25e83930
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov eax, dword [0x4e15f4]
mov ecx, dword [0x4e15f0]
mov edx, eax
add edx, 0x3e28c3a6
sub edx, 1
sub edx, 0x3e28c3a6
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, 0xcf0067e7
mov ecx, 0x32827b3a
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov eax, dword [esi + 0x64]
mov dword [eax], 0x2f
mov ecx, dword [0x4e15f4]
mov eax, dword [0x4e15f0]
mov edx, ecx
add edx, 0x968a659d
sub edx, 1
sub edx, 0x968a659d
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, 0xcf0067e7
mov ecx, 0x2bf76e48
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov dword [esi + 0x2c], 0x82b9e36e
jmp 0x403ec8
mov dword [esi + 0x2c], 0xac2dfae2
jmp 0x403ec8
mov ecx, dword [0x4e15f4]
mov eax, dword [0x4e15f0]
mov edx, ecx
sub edx, 0xe1b3498
sub edx, 1
add edx, 0xe1b3498
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, 0x62403d1b
mov ecx, 0x603bcbe8
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov dword [esi + 0x2c], 0x1b9e119c
jmp 0x403ec8
mov dl, byte [esi + 0x7f]
mov eax, 0x129d4674
mov ecx, 0x75d753db
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov ecx, dword [0x4e15f4]
mov eax, dword [0x4e15f0]
mov edx, ecx
sub edx, 0xc05224d3
sub edx, 1
add edx, 0xc05224d3
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, 0xae74354b
mov ecx, 0xd6cb96f
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov eax, dword [esi + 0x64]
mov eax, dword [eax]
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, 0xffffffff
add ecx, eax
xor eax, eax
sub eax, ecx
mov dword [esi + 0x80], eax
mov eax, dword [0x4e15f4]
mov ecx, dword [0x4e15f0]
mov edx, eax
add edx, 0xb73055dc
sub edx, 1
sub edx, 0xb73055dc
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, 0xae74354b
mov ecx, 0x2f971405
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov dword [esi + 0x2c], 0xfef2a801
jmp 0x403ec8
mov eax, dword [esi + 0x64]
mov ecx, dword [esi + 0x80]
mov dword [eax], ecx
mov dword [esi + 0x2c], 0xac2dfae2
jmp 0x403ec8
mov dword [esi + 0x2c], 0x379df3ad
jmp 0x403ec8
mov ecx, dword [esi + 0x68]
lea eax, str.ckocmbkoitxlzcissppmlfypwm
sub esp, 4
mov dword [esp], eax
call fcn.00413cf0
mov ecx, dword [esi + 0x6c]
lea eax, str.ckocmbkoitxlzcissppmlfypwm
sub esp, 4
mov dword [esp], eax
call fcn.00413cf0
mov dword [esi + 0x2c], 0x9222b778
jmp 0x403ec8
mov eax, dword [esi + 0x68]
mov ecx, dword [esi + 0x6c]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00414220
add esp, 8
mov byte [esi + 0xe], al
mov ecx, dword [esi + 0x6c]
call fcn.00413f60
mov ecx, dword [esi + 0x68]
call fcn.00413f60
mov dl, byte [esi + 0xe]
mov eax, 0x8f4f02dd
mov ecx, 0xa3aba3f6
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov eax, dword [esi + 0x70]
mov dword [eax], 7
mov dword [esi + 0x2c], 0xb70f6822
jmp 0x403ec8
mov ecx, dword [0x4e15f4]
mov eax, dword [0x4e15f0]
mov edx, ecx
sub edx, 0x85a75f72
sub edx, 1
add edx, 0x85a75f72
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, 0x585e0285
mov ecx, 0x92a68ff7
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov eax, dword [0x4e15f4]
mov ecx, dword [0x4e15f0]
mov edx, eax
sub edx, 0x291099f3
sub edx, 1
add edx, 0x291099f3
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, 0x585e0285
mov ecx, 0xb092c4c6
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov dword [esi + 0x2c], 0xe03f756
jmp 0x403ec8
mov ecx, dword [0x4e15f4]
mov eax, dword [0x4e15f0]
mov edx, ecx
sub edx, 0xd15238c7
sub edx, 1
add edx, 0xd15238c7
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, 0x693bc8aa
mov ecx, 0x163df353
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov eax, dword [esi + 0x70]
cmp dword [eax], 0
setg al
and al, 1
mov byte [esi + 0x87], al
mov eax, dword [0x4e15f4]
mov ecx, dword [0x4e15f0]
mov edx, eax
add edx, 0xa8da050a
sub edx, 1
sub edx, 0xa8da050a
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, 0x693bc8aa
mov ecx, 0x187aa0dc
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov dword [esi + 0x2c], 0x53771207
jmp 0x403ec8
mov dl, byte [esi + 0x87]
mov eax, 0xdcff1bcf
mov ecx, 0x9436d6d0
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov dword [esi + 0x2c], 0x64abda8f
jmp 0x403ec8
mov eax, dword [esi + 0x70]
mov ecx, dword [eax]
xor eax, eax
sub eax, ecx
xor ecx, ecx
sub ecx, 0xffffffff
add eax, ecx
xor ecx, ecx
sub ecx, eax
mov eax, dword [esi + 0x70]
mov dword [eax], ecx
mov eax, dword [0x4e15f4]
mov ecx, dword [0x4e15f0]
mov edx, eax
sub edx, 0xcd5fa7bc
sub edx, 1
add edx, 0xcd5fa7bc
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, 0x2fcb38f9
mov ecx, 0xb7691c1e
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov dword [esi + 0x2c], 0x2163e990
jmp 0x403ec8
mov eax, dword [0x4e15f4]
mov ecx, dword [0x4e15f0]
mov edx, eax
sub edx, 0xdb4609e5
sub edx, 1
add edx, 0xdb4609e5
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, 0xf516fd8
mov ecx, 0x306e0af5
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov eax, dword [0x4e15f4]
mov ecx, dword [0x4e15f0]
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, 0xf516fd8
mov ecx, 0xe35cf43b
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov dword [esi + 0x2c], 0xe03f756
jmp 0x403ec8
mov dword [esi + 0x2c], 0x8f4f02dd
jmp 0x403ec8
mov eax, dword [0x4e15f4]
mov ecx, dword [0x4e15f0]
mov edx, eax
add edx, 0xf6550682
sub edx, 1
sub edx, 0xf6550682
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, 0x6d70f2c7
mov ecx, 0xfcf1a48e
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov ecx, dword [esi + 0x4c]
call fcn.00413f60
mov ecx, dword [esi + 0x48]
call fcn.00413f60
mov ecx, dword [0x4e15f4]
mov eax, dword [0x4e15f0]
mov edx, ecx
sub edx, 0xc42d4335
sub edx, 1
add edx, 0xc42d4335
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, 0x6d70f2c7
mov ecx, 0x44196335
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
mov dword [esi + 0x2c], 0x57e696bb
jmp 0x403ec8
mov ecx, dword [0x4e15f4]
mov eax, dword [0x4e15f0]
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, 0x7227dc84
mov ecx, 0x25367582
test dl, 1
cmovne eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x403ec8
fld dword [0x42c1a0]
fstp xword [esi + 4]
mov ecx, dword [esi + 0x88]
xor ecx, ebp
call fcn.0041d300
fld xword [esi + 4]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
mov dword [esi + 0x2c], 0x301bcd1a
jmp 0x403ec8
mov ecx, dword [esi + 0x48]
lea eax, str.oifyipikrubqvkwbyox
sub esp, 4
mov dword [esp], eax
call fcn.00413cf0
mov ecx, dword [esi + 0x4c]
lea eax, str.ckocmbkoitxlzcissppmlfypwm
sub esp, 4
mov dword [esp], eax
call fcn.00413cf0
mov ecx, dword [esi + 0x50]
lea eax, str.oifyipikrubqvkwbyox
sub esp, 4
mov dword [esp], eax
call fcn.00413cf0
mov ecx, dword [esi + 0x54]
lea eax, str.oifyipikrubqvkwbyox
sub esp, 4
mov dword [esp], eax
call fcn.00413cf0
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00414220
add esp, 8
mov ecx, dword [esi + 0x54]
call fcn.00413f60
mov ecx, dword [esi + 0x50]
call fcn.00413f60
mov dword [esi + 0x2c], 0x238956f
jmp 0x403ec8
mov eax, dword [esi + 0x58]
mov dword [eax], 0x1c
mov dword [esi + 0x2c], 0x9f25d0cd
jmp 0x403ec8
mov dword [esi + 0x2c], 0x33db5d98
jmp 0x403ec8
mov dword [esi + 0x2c], 0x54b52984
jmp 0x403ec8
mov eax, dword [esi + 0x64]
mov dword [eax], 0x2f
mov dword [esi + 0x2c], 0x32827b3a
jmp 0x403ec8
mov eax, dword [esi + 0x64]
mov dword [esi + 0x2c], 0xd6cb96f
jmp 0x403ec8
mov eax, dword [esi + 0x70]
mov ecx, dword [eax]
xor eax, eax
sub eax, 0xffffffff
sub ecx, eax
mov eax, dword [esi + 0x70]
mov dword [eax], ecx
mov dword [esi + 0x2c], 0x2dba576d
jmp 0x403ec8
mov dword [esi + 0x2c], 0x306e0af5
jmp 0x403ec8
jmp 0x4028b7