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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x88
mov dword [esp + 0x1c], ecx
mov ebx, dword [ebp + 0x14]
lea esi, [esp + 0x50]
mov eax, dword [0x447834]
xor eax, ebp
mov dword [esp + 0x80], eax
mov eax, dword [ebx + 0x14]
mov ecx, eax
mov edx, eax
and eax, 0xffffbfff
not ecx
xor edx, 0xffffbfff
and edx, ecx
and ecx, 0x4000
or ecx, eax
mov eax, edx
and eax, ecx
xor ecx, edx
or ecx, eax
mov eax, ecx
mov edx, ecx
not eax
and edx, 0x3369933a
and eax, 0xcc966cc5
or eax, edx
mov dl, byte [ebp + 0x1c]
xor eax, 0x3369933a
xor ecx, eax
and ecx, eax
mov eax, 0xf3f56cf6
mov dword [esp + 0x38], ecx
test dl, dl
mov ecx, 0x69fd28cf
cmovne ecx, eax
movzx eax, dl
mov dword [esp + 0x20], eax
mov eax, 0xb11de7d
mov dword [esp + 0x2c], ecx
cmp eax, 0xe956770
jle 0x40f44b
jmp 0x40f620
mov ecx, esi
call fcn.00407ab0
mov eax, 0x76337114
nop dword [eax + eax]
cmp eax, 0xe956770
jg 0x40f620
cmp eax, 0xf98a593c
jg 0x40f4b0
cmp eax, 0xdf2ced02
jg 0x40f4ed
cmp eax, 0x9d7460a9
je 0x40f555
cmp eax, 0xd8676119
jne 0x40f440
mov eax, dword [ebx + 0x30]
mov ecx, dword [eax + 4]
mov dword [esp + 0x54], ecx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [esp], esi
call fcn.00411800
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x48], eax
mov eax, 0x28128096
cmp eax, 0x1abd29a8
jg 0x40f8e0
jmp 0x40f8a7
cmp eax, 0xacc8582
jg 0x40f52b
cmp eax, 0xf98a593d
je 0x40f909
cmp eax, 0x54cdb6a
jne 0x40f440
mov eax, dword [ebx + 0x20]
sub eax, dword [esp + 0x78]
mov dword [esp + 0x28], eax
mov eax, 0x9d7460a9
cmp eax, 0xe956770
jle 0x40f44b
jmp 0x40f620
cmp eax, 0xdf2ced03
je 0x40fa00
cmp eax, 0xf3f56cf6
jne 0x40f440
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx]
mov dword [esp], esi
call dword [eax + 0x1c]
sub esp, 4
mov eax, 0xd00b2159
mov dword [esp + 0x4c], esi
cmp eax, 0xe44a1e3
jg 0x40fab0
jmp 0x40fa77
cmp eax, 0xacc8583
je 0x40fac7
cmp eax, 0xb11de7d
jne 0x40f440
cmp dword [esp + 0x38], 0
mov eax, 0xd8676119
mov ecx, 0xacc8583
jmp 0x40f608
mov eax, dword [esp + 0x28]
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 0x14]
mov esi, eax
mov ecx, eax
xor esi, 0xfffffe3f
or ecx, 0x1c0
and esi, eax
mov edx, ecx
mov edi, ecx
mov ebx, esi
not edx
and edi, 0x3671c653
and esi, 0xc98e39ac
not ebx
and edx, 0xc98e382c
or ecx, ebx
and ebx, 0x3671c653
or edx, edi
or esi, ebx
not ecx
mov ebx, dword [ebp + 0x14]
xor esi, edx
or ecx, esi
lea esi, [esp + 0x50]
mov edx, ecx
and ecx, 0x5c68faab
not edx
and edx, 0xa3970554
or ecx, edx
mov edx, eax
and eax, 0xd914eba6
not edx
xor ecx, 0x5c68faab
and edx, 0x26eb1459
or eax, edx
mov edx, ecx
xor eax, 0xd914eba6
and edx, eax
xor eax, ecx
or eax, edx
mov edx, dword [esp + 0x44]
mov ecx, eax
and eax, 0xed4ca554
not ecx
and ecx, 0x12b35aab
or eax, ecx
mov ecx, 0xf98a593d
mov dword [esp + 0x24], edx
xor eax, 0xed4ca554
cmp eax, 0x40
mov eax, 0x7e0ba252
cmove eax, ecx
cmp eax, 0xe956770
jle 0x40f44b
nop word cs:[eax + eax]
cmp eax, 0x7029dc08
jle 0x40f670
cmp eax, 0x7bdcae13
jg 0x40f7d9
cmp eax, 0x7029dc09
je 0x40fbd3
cmp eax, 0x76337114
jne 0x40f440
mov eax, dword [ebx + 0x24]
cmp dword [ebx + 0x20], 1
mov ecx, 0x7029dc09
sbb eax, 0
mov eax, 0xdf2ced03
cmovl eax, ecx
cmp eax, 0xe956770
jle 0x40f44b
jmp 0x40f620
cmp eax, 0x371c4057
jg 0x40f868
cmp eax, 0xe956771
je 0x40fe11
cmp eax, 0x1312b2ac
jne 0x40f440
lea eax, [ebp + 0xc]
mov edx, dword [esp + 0x1c]
movsd xmm0, qword [eax]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [esp + 0x30]
mov eax, dword [edx]
movsd qword [esp + 4], xmm0
mov dword [esp + 0xc], ebx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
movsx ecx, byte [ebp + 0x18]
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov ecx, edx
call dword [eax + 0x24]
sub esp, 0x18
mov eax, dword [0x448580]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
or ecx, 0xded8f42e
mov edx, ecx
not eax
and ecx, 0x43687f02
not edx
mov esi, eax
and edx, 0x200700d1
or esi, 0x21270bd1
or edx, ecx
mov ecx, esi
and esi, 0x43687f02
not ecx
and ecx, 0x9c90802c
or ecx, esi
lea esi, [esp + 0x50]
xor ecx, edx
mov edx, ecx
and ecx, 0xddfba06a
not edx
and edx, 0x22045f95
or ecx, edx
mov edx, ecx
xor ecx, 0x2004001
xor edx, 0x28c4a2a8
and ecx, 0xd6184913
and edx, 0x29e7b6ec
or edx, ecx
xor edx, 0x29e7b6ec
mov ecx, edx
xor edx, eax
and ecx, eax
or edx, ecx
mov eax, edx
and edx, 0x744f62c
not eax
and eax, 0xf8bb09d3
or edx, eax
xor edx, 0x744f62c
setne al
cmp dword [0x448584], 9
setg cl
xor al, cl
mov edx, eax
xor dl, 1
xor cl, dl
and dl, cl
or cl, al
mov ch, dl
mov ah, dl
xor cl, 1
not ch
and ch, dl
xor ch, 1
xor ah, ch
or ch, dl
xor dl, al
xor ch, 1
or cl, dl
mov edx, 0xe956771
or ch, ah
xor ch, al
mov al, ch
xor al, cl
not al
test al, 1
mov eax, 0x7bdcae14
cmovne edx, eax
test cl, 1
mov eax, 0xe956771
cmovne eax, edx
test ch, 1
cmovne eax, edx
cmp eax, 0xe956770
jle 0x40f44b
jmp 0x40f620
cmp eax, 0x7bdcae14
je 0x40fbf0
cmp eax, 0x7e0ba252
jne 0x40f440
lea eax, [ebp + 0xc]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], ecx
mov ecx, 0x26e9a87e
nop dword [eax + eax]
cmp ecx, 0xaa7fc3aa
je 0x40f850
cmp ecx, 0x1643a3a6
je 0x40fc46
cmp ecx, 0x26e9a87e
jne 0x40f810
mov dword [esp + 0x4c], eax
mov ecx, 0xaa7fc3aa
mov edx, 0x1643a3a6
cmp dword [esp + 0x4c], 0
cmove ecx, edx
cmp ecx, 0xaa7fc3aa
jne 0x40f818
nop word [eax + eax]
movsx eax, byte [ebp + 0x18]
mov ecx, esi
mov dword [esp], eax
call fcn.00413c60
sub esp, 4
mov eax, dword [esp + 0x4c]
dec eax
jmp 0x40f803
cmp eax, 0x69fd28cf
je 0x40fc70
cmp eax, 0x371c4058
jne 0x40f440
jmp 0x40fe26
cmp dword [esp + 0x48], 0
mov eax, 0x1abd29a9
mov ecx, 0x870319bf
cmove eax, ecx
nop word cs:[eax + eax]
nop
cmp eax, 0x1abd29a8
jg 0x40f8e0
cmp eax, 0x870319bf
je 0x40fc98
cmp eax, 0xfdba0446
jne 0x40f8a0
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov eax, dword [eax]
mov ecx, dword [esp + 0x4c]
mov dword [esp], 1
call eax
sub esp, 4
mov eax, 0x870319bf
cmp eax, 0x1abd29a8
jle 0x40f8a7
nop dword [eax]
cmp eax, 0x1abd29a9
je 0x40f8f0
cmp eax, 0x28128096
jne 0x40f8a0
jmp 0x40f883
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx]
call dword [eax + 8]
mov dword [esp + 0x4c], eax
mov eax, 0xfdba0446
cmp dword [esp + 0x4c], 0
jmp 0x40f88d
lea edx, [esp + 0x68]
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
mov esi, 0x598afd8e
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x4c]
cmp ecx, 0xf
mov ecx, 0x86428386
cmova esi, ecx
mov dword [esp + 0x50], edx
mov edx, 0x82904b7a
nop word cs:[eax + eax]
cmp edx, 0x598afd8e
je 0x40f97b
cmp edx, 0x86428386
je 0x40f968
cmp edx, 0x82904b7a
jne 0x40f940
mov ecx, dword [esp + 0x50]
mov edx, esi
cmp edx, 0x598afd8e
jne 0x40f948
jmp 0x40f97b
mov ecx, dword [esp + 0x4c]
mov edx, 0x598afd8e
mov ecx, dword [ecx]
cmp edx, 0x598afd8e
jne 0x40f948
lea edx, [ebp + 0xc]
mov esi, edx
mov edx, dword [edx]
mov esi, dword [esi + 4]
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], esi
lea esi, [esp + 0x50]
mov edx, 0xea832e97
nop word cs:[eax + eax]
cmp edx, 0xa63e0e16
je 0x40f9e0
cmp edx, 0x65144aef
je 0x40fcd0
cmp edx, 0xea832e97
jne 0x40f9a0
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov edx, 0xa63e0e16
mov edi, 0x65144aef
cmp dword [esp + 0x48], 0
cmove edx, edi
cmp edx, 0xa63e0e16
jne 0x40f9a8
nop
mov eax, dword [esp + 0x4c]
mov ecx, esi
movsx eax, byte [eax]
mov dword [esp], eax
call fcn.00413c60
sub esp, 4
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
dec eax
inc ecx
jmp 0x40f991
mov eax, dword [esp + 0x78]
mov ecx, 0x54cdb6a
cmp eax, dword [ebx + 0x20]
mov eax, 0x7029dc09
cmovb eax, ecx
cmp eax, 0xe956770
jle 0x40f44b
jmp 0x40f620
lea ecx, [esp + 0x68]
call fcn.00407ab0
movsd xmm0, qword [esp + 0x60]
movsd xmm2, qword [esp + 0x50]
movsd xmm1, qword [esp + 0x58]
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0xf
mov byte [esp + 0x50], 0
movsd qword [esp + 0x78], xmm0
movsd qword [esp + 0x70], xmm1
movsd qword [esp + 0x68], xmm2
mov eax, 0x49992799
nop dword [eax + eax]
cmp eax, 0xe44a1e3
jg 0x40fab0
cmp eax, 0xaf880adc
je 0x40fa66
cmp eax, 0xd00b2159
jne 0x40fa70
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x68]
mov edx, 0xaf880adc
cmp eax, ecx
mov eax, 0xe44a1e4
cmove eax, edx
cmp eax, 0xe44a1e3
jle 0x40fa77
nop word cs:[eax + eax]
nop dword [eax]
cmp eax, 0xe44a1e4
je 0x40fa24
cmp eax, 0x49992799
jne 0x40fa70
jmp 0x40f42c
mov ecx, dword [0x448580]
mov edi, 0x1312b2ac
lea eax, [ecx - 1]
imul eax, ecx
mov esi, eax
mov edx, eax
and eax, 0x659a66ef
not esi
and edx, 0xd17d93df
mov ecx, esi
and esi, 0x9a659910
and ecx, 0x2e826c20
or eax, esi
or edx, ecx
mov ecx, edx
and edx, 0x60071b76
not ecx
and ecx, 0x9ff8e489
or edx, ecx
mov ecx, edx
xor edx, 0x916a8808
xor ecx, 0x4e857757
and edx, 0xdfeee80d
mov esi, ecx
and esi, 0x201117f2
or edx, esi
mov esi, eax
xor eax, 0x9a659910
xor esi, 0x458a600d
or ecx, eax
and eax, 0x201117f2
and esi, 0xdfeee80d
not ecx
or esi, eax
xor esi, edx
or ecx, esi
lea esi, [esp + 0x50]
mov eax, ecx
and ecx, 0x29525f1b
not eax
and eax, 0xd6ada0e4
or ecx, eax
mov eax, dword [0x448584]
xor ecx, 0x29525f1b
setne cl
sete dl
cmp eax, 9
setg ch
cmp eax, 0xa
setl al
or ch, dl
or cl, al
mov ah, al
or al, dl
xor ch, 1
xor cl, 1
xor ah, dl
xor al, 1
mov edx, ecx
or al, ah
and dl, ch
xor ch, cl
xor al, 1
or ch, dl
xor ch, al
mov cl, ch
mov dl, ch
not cl
and cl, al
mov eax, 0x7bdcae14
xor dl, cl
test ch, ch
cmovne eax, edi
test cl, cl
mov ecx, 0x7bdcae14
cmove eax, ecx
test dl, 1
cmovne eax, edi
cmp eax, 0xe956770
jle 0x40f44b
jmp 0x40f620
mov eax, 0x9d7460a9
mov dword [esp + 0x28], 0
cmp eax, 0xe956770
jle 0x40f44b
jmp 0x40f620
lea eax, [ebp + 0xc]
mov edx, dword [esp + 0x1c]
movsd xmm0, qword [eax]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [esp + 0x30]
mov eax, dword [edx]
movsd qword [esp + 4], xmm0
mov dword [esp + 0xc], ebx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
movsx ecx, byte [ebp + 0x18]
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov ecx, edx
call dword [eax + 0x24]
sub esp, 0x18
mov eax, 0x1312b2ac
cmp eax, 0xe956770
jle 0x40f44b
jmp 0x40f620
movsd xmm0, qword [esp + 0x50]
lea eax, [ebp + 0xc]
mov dword [esp + 0x24], 0
movsd qword [eax], xmm0
mov eax, 0xf98a593d
cmp eax, 0xe956770
jle 0x40f44b
jmp 0x40f620
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx]
mov dword [esp], esi
call dword [eax + 0x18]
sub esp, 4
mov eax, 0xd00b2159
mov dword [esp + 0x4c], esi
cmp eax, 0xe44a1e3
jg 0x40fde0
jmp 0x40fda7
lea eax, [esp + 0x68]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x68], 0
mov dword [esp + 0x7c], 0xf
mov dword [esp + 0x78], 0
cmp eax, 0xe956770
jle 0x40f44b
jmp 0x40f620
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
lea edx, [ebp + 0xc]
mov dword [edx + 4], ecx
mov dword [edx], eax
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x20], 0
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x54], ecx
mov ecx, 0x26e9a87e
nop
cmp ecx, 0xaa7fc3aa
je 0x40fd40
cmp ecx, 0x1643a3a6
je 0x40fdf7
cmp ecx, 0x26e9a87e
jne 0x40fd00
mov dword [esp + 0x4c], eax
mov ecx, 0xaa7fc3aa
mov edx, 0x1643a3a6
cmp dword [esp + 0x4c], 0
cmove ecx, edx
cmp ecx, 0xaa7fc3aa
jne 0x40fd08
nop word [eax + eax]
movsx eax, byte [ebp + 0x18]
mov ecx, esi
mov dword [esp], eax
call fcn.00413c60
sub esp, 4
mov eax, dword [esp + 0x4c]
dec eax
jmp 0x40fcfa
lea ecx, [esp + 0x68]
call fcn.00407ab0
movsd xmm0, qword [esp + 0x60]
movsd xmm2, qword [esp + 0x50]
movsd xmm1, qword [esp + 0x58]
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0xf
mov byte [esp + 0x50], 0
movsd qword [esp + 0x78], xmm0
movsd qword [esp + 0x70], xmm1
movsd qword [esp + 0x68], xmm2
mov eax, 0x49992799
nop
cmp eax, 0xe44a1e3
jg 0x40fde0
cmp eax, 0xaf880adc
je 0x40fd9a
cmp eax, 0xd00b2159
jne 0x40fda0
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x68]
mov edx, 0xaf880adc
cmp eax, ecx
mov eax, 0xe44a1e4
cmove eax, edx
cmp eax, 0xe44a1e3
jle 0x40fda7
nop word cs:[eax + eax]
nop dword [eax]
cmp eax, 0xe44a1e4
je 0x40fd58
cmp eax, 0x49992799
jne 0x40fda0
jmp 0x40f42c
movsd xmm0, qword [esp + 0x50]
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x68]
movsd qword [eax], xmm0
call fcn.00407ab0
mov eax, dword [esp + 0x40]
mov eax, 0x371c4058
cmp eax, 0xe956770
jle 0x40f44b
jmp 0x40f620
mov ecx, dword [esp + 0x80]
xor ecx, ebp
call fcn.004178c4
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x18