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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x128
mov al, byte [esp + 0x34]
mov byte [esp + 0x3c], al
mov byte [esp + 0x110], 0x36
mov byte [esp + 0x111], 0x39
mov byte [esp + 0x112], 0x38
mov byte [esp + 0x113], 0xfb
mov eax, 4
mov byte [esp + eax + 0x110], 0
add eax, 1
cmp eax, 0xf
jne 0x4393bc
lea eax, [esp + 0x110]
mov dword [esp + 0x64], eax
xor eax, eax
mov dword [esp + 0x54], eax
cmp eax, 0xf
jae 0x439423
call fcn.00409bc0
call fcn.00409bc0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x64]
movzx ecx, byte [ecx + eax]
add eax, 0x40598377
xor eax, ecx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0xbf
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x54]
mov byte [ecx + edx], al
mov eax, dword [esp + 0x54]
add eax, 1
jmp 0x4393d9
mov al, byte [esp + 0x30]
mov byte [esp + 0x38], al
mov byte [esp + 0x100], 0x36
mov byte [esp + 0x101], 0x39
mov byte [esp + 0x102], 0x38
mov byte [esp + 0x103], 0xfb
mov eax, 4
mov byte [esp + eax + 0x100], 0
add eax, 1
cmp eax, 0xf
jne 0x439450
lea eax, [esp + 0x100]
mov dword [esp + 0x5c], eax
xor eax, eax
mov dword [esp + 0x58], eax
cmp eax, 0xf
jae 0x4394b7
call fcn.00409bc0
call fcn.00409bc0
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
movzx ecx, byte [ecx + eax]
add eax, 0x40598377
xor eax, ecx
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0xe4]
add al, 0xbf
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov byte [ecx + edx], al
mov eax, dword [esp + 0x58]
add eax, 1
jmp 0x43946d
mov eax, dword [esp + 0x5c]
mov eax, dword [eax]
xor ecx, ecx
cpuid
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
mov eax, dword [esp + 0x80]
mov dword [esp + 0xd4], eax
mov al, byte [esp + 0x2c]
mov byte [esp + 0x40], al
mov dword [esp + 0xc], 0x564b4d56
movzx eax, byte [esp + 0xc]
add eax, 0x4d
xor eax, 0xb
mov byte [esp + 0xb8], al
movzx eax, byte [esp + 0xd]
add eax, 0x4d
xor eax, 0xc
mov byte [esp + 0xb9], al
movzx eax, byte [esp + 0xe]
add eax, 0x4d
xor eax, 0xd
mov byte [esp + 0xba], al
movzx eax, byte [esp + 0xf]
add eax, 0x4d
xor eax, 0xe
mov byte [esp + 0xbb], al
mov eax, 4
mov byte [esp + eax + 0xb8], 0
add eax, 1
cmp eax, 0x10
jne 0x439542
xor ebx, ebx
cmp ebx, 0x10
jae 0x439603
call fcn.00409bc0
call fcn.00409bc0
movzx esi, byte [esp + ebx + 0xb8]
mov dword [esp + 0xcc], esi
call fcn.00409bc0
call fcn.00409bc0
call fcn.00409bc0
mov ecx, ebx
xor ecx, 0x34fab0b9
mov edx, ebx
and edx, 0x34fab0b9
lea eax, [ecx + edx*2]
lea edi, [ecx + edx*2 + 0x1d957b52]
mov ecx, edi
xor ecx, esi
mov edx, ecx
add edx, edx
not edx
add ecx, edx
mov esi, edi
and esi, ecx
mov ecx, esi
or ecx, 2
mov edx, esi
and edx, 2
imul ecx, edx
xor edx, 2
and esi, 0xfffffffd
imul edx, esi
add ecx, edx
mov edx, ecx
not edx
and edi, edx
mov edx, 0xe26a84ad
sub edx, eax
and ecx, edx
sub edi, ecx
add edi, dword [esp + 0xcc]
call fcn.00409bc0
mov dword [esp + 0xec], edi
mov eax, dword [esp + 0xec]
add al, 0xb3
mov byte [esp + ebx + 0xb8], al
add ebx, 1
jmp 0x439554
mov ecx, dword [esp + 0xb8]
mov al, 1
cmp dword [esp + 0xd4], ecx
je 0x439bbe
mov eax, dword [esp + 0x80]
mov dword [esp + 0xdc], eax
mov al, byte [esp + 0x28]
mov byte [esp + 0x44], al
mov dword [esp + 0x10], 0x43544743
lea eax, [esp + 0x68]
mov dword [esp + 0x120], eax
movzx eax, byte [esp + 0x10]
add eax, 0x574c93c
mov ecx, eax
and ecx, 0x6e7e65e4
shl ecx, 1
mov edx, 0x6e7e65e4
sub edx, ecx
add edx, eax
mov byte [esp + 0x68], dl
movzx eax, byte [esp + 0x11]
add eax, 0x574c93c
mov ecx, eax
and ecx, 0x6e7e65e5
shl ecx, 1
mov edx, 0x6e7e65e5
sub edx, ecx
add edx, eax
mov byte [esp + 0x69], dl
movzx eax, byte [esp + 0x12]
add eax, 0x574c93c
mov ecx, eax
and ecx, 0x6e7e65e6
shl ecx, 1
mov edx, 0x6e7e65e6
sub edx, ecx
add edx, eax
mov byte [esp + 0x6a], dl
movzx eax, byte [esp + 0x13]
add eax, 0x574c93c
mov ecx, eax
and ecx, 0x6e7e65e7
shl ecx, 1
mov edx, 0x6e7e65e7
sub edx, ecx
add edx, eax
mov byte [esp + 0x6b], dl
mov eax, 4
mov byte [esp + eax + 0x68], 0
add eax, 1
cmp eax, 0xb
jne 0x4396cb
xor edi, edi
cmp edi, 0xb
jae 0x439829
mov dword [esp + 4], edi
mov eax, dword [esp + 4]
movzx edi, byte [esp + eax + 0x68]
call fcn.00409bc0
call fcn.00409bc0
call fcn.00409bc0
call fcn.00409bc0
mov ebx, dword [esp + 4]
add ebx, 0x6e7e65e4
mov ecx, edi
not ecx
mov edx, ecx
and edx, 0x880a0090
mov esi, edi
and esi, 0x26
or edx, esi
xor edx, 0x77f5ff6f
mov eax, edx
add eax, 0x990e01b7
mov dword [esp + 0x60], eax
or ecx, 0x66f1fe49
lea esi, [edi + ecx + 1]
mov ecx, 3
sub ecx, dword [esp + 4]
mov edi, ebx
and edi, 0xfffffffd
and ecx, 2
imul ecx, edi
mov edi, dword [esp + 4]
and edi, 2
mov eax, ebx
or eax, 2
imul eax, edi
add eax, ecx
not eax
mov ecx, dword [esp + 4]
lea ecx, [ecx + eax + 0x6e7e65e4]
mov eax, ecx
xor eax, 0x66f1fe49
or ecx, 0x990e01b6
and ecx, eax
and ebx, 0x66f1fe49
mov edi, 0x66f1fe48
sub edi, edx
and edi, 0x2f18a60
mov eax, dword [esp + 0x60]
and eax, 0x20196
or edi, eax
mov eax, esi
xor eax, 0x9bfd8a60
mov edx, edi
and edx, eax
add edx, edx
add edi, eax
sub edi, edx
and esi, dword [esp + 0x60]
lea edx, [esi + esi + 2]
sub edx, esi
mov esi, edx
add esi, 0xfffffffe
mov eax, 1
sub eax, edx
and eax, 0x7c1195f5
mov edx, esi
and edx, 0x83ee6a0a
or eax, edx
mov edx, edi
xor edx, eax
xor edx, 0x7c1195f5
and edi, esi
or edx, edi
mov edi, dword [esp + 4]
mov esi, ecx
or esi, ebx
mov eax, ecx
add eax, eax
not eax
add ecx, eax
mov eax, ebx
add eax, eax
not eax
add ebx, eax
and ecx, ebx
not ecx
and esi, ecx
mov eax, edx
add eax, eax
not eax
mov ecx, edx
add ecx, eax
xor ecx, edx
and ecx, esi
xor ecx, edx
mov dword [esp + 0xf0], ecx
mov eax, dword [esp + 0xf0]
add al, 0xc4
mov byte [esp + edi + 0x68], al
add edi, 1
jmp 0x4396da
mov eax, dword [esp + 0xdc]
cmp eax, dword [esp + 0x68]
sete cl
mov al, 1
test cl, 1
jne 0x439bbe
jmp 0x439844
mov eax, dword [esp + 0x80]
mov dword [esp + 0xd8], eax
mov al, byte [esp + 0x24]
mov byte [esp + 0x48], al
mov dword [esp + 0x14], 0x4d566572
movzx eax, byte [esp + 0x14]
add eax, 0xc3
xor eax, 0x65
mov byte [esp + 0xa8], al
movzx eax, byte [esp + 0x15]
add eax, 0xc3
xor eax, 0x66
mov byte [esp + 0xa9], al
movzx eax, byte [esp + 0x16]
add eax, 0xc3
xor eax, 0x67
mov byte [esp + 0xaa], al
movzx eax, byte [esp + 0x17]
add eax, 0xc3
xor eax, 0x68
mov byte [esp + 0xab], al
mov eax, 4
mov byte [esp + eax + 0xa8], 0
add eax, 1
cmp eax, 0xd
jne 0x4398b7
xor esi, esi
cmp esi, 0xd
jae 0x4399bc
call fcn.00409bc0
call fcn.00409bc0
mov dword [esp + 8], esi
mov eax, dword [esp + 8]
movzx esi, byte [esp + eax + 0xa8]
mov edx, dword [esp + 8]
xor edx, 0xcbf8b59b
mov eax, dword [esp + 8]
and eax, 0x34074a64
add eax, eax
sub eax, edx
mov edx, esi
not edx
mov ebx, eax
or ebx, edx
mov ecx, esi
add ecx, ebx
lea ebx, [esi + ebx + 1]
mov edi, ebx
xor edi, 2
mov edx, ebx
or edx, 0xfffffffd
and edx, edi
lea edi, [ecx + ecx + 2]
not edi
lea ecx, [edi + ecx + 1]
and ecx, 2
imul ecx, edx
mov edx, ebx
and edx, 2
or ebx, 2
imul ebx, edx
add eax, esi
mov edx, eax
not edx
and edx, 0x7cdcd7f7
and eax, 0x83232808
add edx, ebx
add edx, ecx
sub eax, edx
add eax, 0x7cdcd7f7
mov dword [esp + 0xf4], eax
mov ecx, dword [esp + 0xf4]
mov eax, ecx
shl eax, 1
and eax, 0x86
mov edx, ecx
add edx, 0x3f
sub eax, edx
add eax, 0x7c
mov edx, ecx
xor edx, 0x6c3308c3
or ecx, 0x93ccf73c
and ecx, edx
mov edx, ecx
and edx, 2
xor edx, 2
mov esi, ecx
and esi, 0xfd
imul esi, edx
mov edx, ecx
and edx, 2
or ecx, 2
imul ecx, edx
add ecx, esi
mov esi, dword [esp + 8]
add eax, ecx
mov byte [esp + esi + 0xa8], al
add esi, 1
jmp 0x4398c9
mov al, 1
mov ecx, dword [esp + 0xd8]
cmp ecx, dword [esp + 0xa8]
je 0x439bbe
mov eax, dword [esp + 0x80]
mov dword [esp + 0xd0], eax
mov al, byte [esp + 0x20]
mov byte [esp + 0x4c], al
mov byte [esp + 0x98], 0
mov byte [esp + 0x99], 0x7b
mov byte [esp + 0x9a], 0x29
mov byte [esp + 0x9b], 0x23
mov eax, 4
mov byte [esp + eax + 0x98], 0
add eax, 1
cmp eax, 0x10
jne 0x439a0d
xor edi, edi
cmp edi, 0x10
jae 0x439ad1
call fcn.00409bc0
call fcn.00409bc0
movzx ebx, byte [esp + edi + 0x98]
call fcn.00409bc0
call fcn.00409bc0
mov eax, edi
add eax, 0xa9592bb0
mov ecx, eax
and ecx, 0x1d9c23c7
xor eax, 0x9d9c23c7
lea edx, [eax + ecx*2]
lea eax, [eax + ecx*2 + 0x56a6d450]
mov esi, 0xa9592baf
sub esi, edx
lea ecx, [edx + edx - 0x52b25760]
not ecx
lea ecx, [ecx + edx + 0x56a6d450]
and ecx, esi
mov edx, ecx
add edx, edx
not edx
add ecx, edx
and ecx, ebx
or eax, ebx
mov edx, ecx
add edx, edx
not edx
add ecx, edx
and ecx, eax
mov dword [esp + 0xf8], ecx
mov ecx, dword [esp + 0xf8]
mov eax, ecx
xor eax, 0xffffffff
mov esi, ecx
or esi, 0x71
add esi, 0xd5
mov edx, ecx
sub edx, esi
add ecx, 1
or eax, 0x8e
add eax, ecx
add edx, eax
add dl, 0xd5
mov byte [esp + edi + 0x98], dl
add edi, 1
jmp 0x439a1f
mov al, 1
mov ecx, dword [esp + 0xd0]
cmp ecx, dword [esp + 0x98]
je 0x439bbe
mov eax, dword [esp + 0x80]
mov cl, byte [esp + 0x1c]
mov byte [esp + 0x50], cl
mov dword [esp + 0x18], 0x65584d4d
movzx ecx, byte [esp + 0x18]
add ecx, 0x47
xor ecx, 0xc1
mov byte [esp + 0x88], cl
movzx ecx, byte [esp + 0x19]
add ecx, 0x47
xor ecx, 0xc2
mov byte [esp + 0x89], cl
movzx ecx, byte [esp + 0x1a]
add ecx, 0x47
xor ecx, 0xc3
mov byte [esp + 0x8a], cl
movzx ecx, byte [esp + 0x1b]
add ecx, 0x47
xor ecx, 0xc4
mov byte [esp + 0x8b], cl
mov ecx, 4
mov byte [esp + ecx + 0x88], 0
add ecx, 1
cmp ecx, 0xf
jne 0x439b57
xor ecx, ecx
cmp ecx, 0xf
jae 0x439bb2
movzx edx, byte [esp + ecx + 0x88]
mov esi, ecx
add esi, 0xd27543c1
mov edi, ecx
add edi, 0xc1
and edi, edx
add edi, edi
mov ebx, esi
and ebx, edx
xor esi, edx
lea edx, [esi + ebx*2]
sub edx, edi
mov dword [esp + 0xfc], edx
mov edx, dword [esp + 0xfc]
add dl, 0xb9
mov byte [esp + ecx + 0x88], dl
add ecx, 1
jmp 0x439b69
cmp eax, dword [esp + 0x88]
sete al
jmp 0x439bbe
test al, 1
jne 0x439bc4
jmp 0x439bd6
mov byte [esp + 3], 1
mov dword [esp + 0xe0], 1
jmp 0x439be6
mov byte [esp + 3], 0
mov dword [esp + 0xe0], 1
mov al, byte [esp + 3]
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret