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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd8
mov esi, esp
call fcn.00409740
push eax
mov dword [esi + 0x64], esp
sub esp, 0x10
mov dword [esi + 8], esp
sub esp, 0x10
mov edx, esp
and edx, 0xfffffff8
mov esp, edx
push eax
mov ebx, esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
push eax
mov dword [esi + 0x84], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov esp, edi
push eax
mov dword [esi + 0x90], esp
sub esp, 8
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x98], ecx
mov esp, ecx
push eax
mov dword [esi + 0x94], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0xa0], ecx
mov esp, ecx
push eax
mov dword [esi + 0x9c], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x5c], ecx
mov esp, ecx
push eax
mov dword [esi + 0xa4], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov esp, ecx
push eax
mov dword [esi + 0xa8], esp
push eax
mov dword [esi + 0x60], esp
mov bl, byte [ebx]
mov byte [esi + 0x34], bl
mov dword [esi + 0x18], 0x40000000
movzx ebx, byte [esi + 0x18]
add ebx, 0xf1
xor ebx, 0x47
mov byte [edx], bl
movzx ebx, byte [esi + 0x19]
add ebx, 0xf1
xor ebx, 0x48
mov byte [edx + 1], bl
movzx ebx, byte [esi + 0x1a]
add ebx, 0xf1
xor ebx, 0x49
mov byte [edx + 2], bl
movzx ebx, byte [esi + 0x1b]
add ebx, 0xf1
xor ebx, 0x4a
mov byte [edx + 3], bl
mov ebx, 4
mov byte [edx + ebx], 0
add ebx, 1
cmp ebx, 0xf
jne 0x436186
mov dword [esi + 0x2c], edi
mov dword [esi + 0xac], ecx
mov dword [esi + 0xb0], edx
xor edx, edx
mov dword [esi + 0x68], edx
cmp edx, 0xf
jae 0x4361dc
mov edi, dword [esi + 0x68]
mov ebx, dword [esi + 0xb0]
movzx ecx, byte [ebx + edi]
mov edx, edi
add edx, 0xedcca447
xor edx, ecx
mov dword [esi + 0xb8], edx
mov ecx, dword [esi + 0xb8]
add cl, 0xf
mov byte [ebx + edi], cl
mov edx, dword [esi + 0x68]
add edx, 1
jmp 0x4361a3
mov ecx, dword [esi + 0x84]
mov cl, byte [ecx]
mov byte [esi + 0x30], cl
mov dword [esi + 0x14], 0x40000000
movzx ecx, byte [esi + 0x14]
add ecx, 0xf1
xor ecx, 0x47
mov byte [eax], cl
movzx ecx, byte [esi + 0x15]
add ecx, 0xf1
xor ecx, 0x48
mov byte [eax + 1], cl
movzx ecx, byte [esi + 0x16]
add ecx, 0xf1
xor ecx, 0x49
mov byte [eax + 2], cl
movzx ecx, byte [esi + 0x17]
add ecx, 0xf1
xor ecx, 0x4a
mov byte [eax + 3], cl
mov ecx, 4
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 0xf
jne 0x436232
mov dword [esi + 0x70], eax
xor eax, eax
mov dword [esi + 0x6c], eax
cmp eax, 0xf
jae 0x436279
mov eax, dword [esi + 0x6c]
mov ecx, dword [esi + 0x70]
movzx edx, byte [ecx + eax]
mov edi, eax
add edi, 0xedcca447
xor edi, edx
mov dword [esi + 0xb4], edi
mov edx, dword [esi + 0xb4]
add dl, 0xf
mov byte [ecx + eax], dl
mov eax, dword [esi + 0x6c]
add eax, 1
jmp 0x436243
mov eax, dword [esi + 0x70]
mov eax, dword [eax]
xor ecx, ecx
cpuid
mov edi, dword [esi + 8]
mov dword [edi], eax
mov dword [edi + 4], ebx
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
mov eax, dword [edi + 8]
mov dword [esi + 0x78], eax
mov eax, dword [esi + 0x90]
mov al, byte [eax]
mov byte [esi + 0x38], al
mov edx, dword [esi + 0x2c]
mov byte [edx], 0xfc
mov byte [edx + 1], 0xf6
mov byte [edx + 2], 0xc9
mov byte [edx + 3], 0xf1
mov eax, 4
mov byte [edx + eax], 0
add eax, 1
cmp eax, 9
jne 0x4362b8
xor ebx, ebx
cmp ebx, 9
jae 0x436319
call fcn.00409740
call fcn.00409740
mov eax, dword [esi + 0x2c]
movzx edi, byte [eax + ebx]
call fcn.00409740
call fcn.00409740
mov eax, ebx
add eax, 0x4988ac95
xor eax, edi
mov edx, dword [esi + 0x2c]
mov dword [esi + 0xbc], eax
mov eax, dword [esi + 0xbc]
mov ecx, eax
xor ecx, 0xb2
shl eax, 1
and eax, 0x9a
sub eax, ecx
add al, 0x9f
mov byte [edx + ebx], al
add ebx, 1
jmp 0x4362c6
mov eax, dword [esi + 0x78]
cmp eax, dword [edx]
sete cl
mov al, 1
test cl, 1
jne 0x436811
jmp 0x43632e
mov eax, dword [esi + 8]
mov eax, dword [eax + 8]
mov dword [esi + 0x8c], eax
mov eax, dword [esi + 0x94]
mov al, byte [eax]
mov byte [esi + 0x3c], al
mov dword [esi + 0x1c], 0x43544743
movzx eax, byte [esi + 0x1c]
add eax, 0xbbc678a4
mov ecx, eax
and ecx, 0x888a113c
shl ecx, 1
add eax, 0x888a113c
sub eax, ecx
mov edx, dword [esi + 0x98]
mov byte [edx], al
movzx eax, byte [esi + 0x1d]
add eax, 0xbbc678a4
mov ecx, eax
and ecx, 0x888a113d
shl ecx, 1
add eax, 0x888a113d
sub eax, ecx
mov byte [edx + 1], al
movzx eax, byte [esi + 0x1e]
add eax, 0xbbc678a4
mov ecx, eax
and ecx, 0x888a113e
shl ecx, 1
add eax, 0x888a113e
sub eax, ecx
mov byte [edx + 2], al
movzx eax, byte [esi + 0x1f]
add eax, 0xbbc678a4
mov ecx, eax
and ecx, 0x888a113f
shl ecx, 1
add eax, 0x888a113f
sub eax, ecx
mov byte [edx + 3], al
mov eax, 4
mov byte [edx + eax], 0
add eax, 1
cmp eax, 8
jne 0x4363ca
mov dword [esi + 0x4c], edx
mov dword [esi + 0xc], 0
cmp dword [esi + 0xc], 8
jae 0x43649f
call fcn.00409740
call fcn.00409740
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x4c]
movzx eax, byte [eax + edx]
mov dword [esi + 0x58], eax
mov ebx, edx
add ebx, 0x888a113c
not eax
mov ecx, eax
and ecx, 0x621a040b
mov edi, dword [esi + 0x58]
and edi, 0xfffffff4
or ecx, edi
xor ecx, 0x621a040b
and ebx, ecx
lea ecx, [edx + ecx - 0x7775eec4]
not ecx
lea ebx, [ecx + ebx*2]
mov ecx, 0x7775eec3
sub ecx, edx
or ebx, ecx
not ebx
or ecx, eax
mov eax, dword [esi + 0x58]
lea eax, [eax + ecx + 1]
or eax, ebx
mov dword [esi + 0xc0], eax
mov ecx, dword [esi + 0xc0]
mov eax, ecx
shl eax, 1
and eax, 0x48
add eax, 0x5c
sub eax, ecx
mov edx, ecx
and edx, 0x59
mov ebx, ecx
and ebx, 0x59
mov edi, ecx
and edi, 2
xor edi, 2
imul ebx, edi
and ecx, 2
or edx, 2
imul edx, ecx
add edx, ebx
add edx, eax
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0xc]
mov byte [eax + ecx], dl
mov eax, dword [esi + 0xc]
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov dword [esi + 0xc], eax
jmp 0x4363e0
mov ecx, dword [esi + 0x4c]
mov al, 1
mov edx, dword [esi + 0x8c]
cmp edx, dword [ecx]
je 0x436811
mov eax, dword [esi + 8]
mov eax, dword [eax + 8]
mov dword [esi + 0x7c], eax
mov eax, dword [esi + 0x9c]
mov al, byte [eax]
mov byte [esi + 0x40], al
mov dword [esi + 0x20], 0x4d566572
movzx eax, byte [esi + 0x20]
add eax, 0x7f
xor eax, 0xc9
mov ecx, dword [esi + 0xa0]
mov byte [ecx], al
movzx eax, byte [esi + 0x21]
add eax, 0x7f
xor eax, 0xca
mov byte [ecx + 1], al
movzx eax, byte [esi + 0x22]
add eax, 0x7f
xor eax, 0xcb
mov byte [ecx + 2], al
movzx eax, byte [esi + 0x23]
add eax, 0x7f
xor eax, 0xcc
mov byte [ecx + 3], al
mov eax, 4
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 0xe
jne 0x436513
mov dword [esi + 0x50], ecx
xor eax, eax
mov dword [esi + 0x28], eax
cmp dword [esi + 0x28], 0xe
jae 0x436584
mov edi, dword [esi + 0x28]
mov eax, dword [esi + 0x50]
movzx ebx, byte [eax + edi]
call fcn.00409740
call fcn.00409740
mov eax, edi
add eax, 0xc9
and eax, ebx
add eax, eax
sub eax, edi
mov ecx, eax
add ecx, 0xc990837
xor ecx, ebx
mov edx, 0xc8
sub edx, eax
and edx, ebx
add edx, edx
sub edx, ecx
mov dword [esi + 0xc4], edx
mov eax, dword [esi + 0xc4]
add al, 0x81
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x50]
mov byte [edx + ecx], al
mov eax, dword [esi + 0x28]
add eax, 1
jmp 0x436524
mov eax, dword [esi + 0x50]
mov eax, dword [eax]
cmp dword [esi + 0x7c], eax
sete cl
mov al, 1
test cl, 1
jne 0x436811
jmp 0x43659c
mov eax, dword [esi + 8]
mov eax, dword [eax + 8]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0xa4]
mov al, byte [eax]
mov byte [esi + 0x44], al
mov dword [esi + 0x24], 0x786f4256
movzx eax, byte [esi + 0x24]
add eax, 0xd2
xor eax, 0x1e
mov ecx, dword [esi + 0x5c]
mov byte [ecx], al
movzx eax, byte [esi + 0x25]
add eax, 0xd2
xor eax, 0x1f
mov byte [ecx + 1], al
movzx eax, byte [esi + 0x26]
add eax, 0xd2
xor eax, 0x20
mov byte [ecx + 2], al
movzx eax, byte [esi + 0x27]
add eax, 0xd2
xor eax, 0x21
mov byte [ecx + 3], al
mov eax, 4
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 0x10
jne 0x4365fd
xor eax, eax
cmp eax, 0x10
jae 0x4366df
movzx edi, byte [ecx + eax]
mov dword [esi + 0x74], edi
mov dword [esi + 4], eax
call fcn.00409740
call fcn.00409740
call fcn.00409740
call fcn.00409740
mov eax, dword [esi + 4]
add eax, 0x2765171e
mov edx, 0xd89ae8e1
sub edx, dword [esi + 4]
or edx, edi
not edx
mov ecx, 0xe1
sub ecx, dword [esi + 4]
and ecx, edi
or ecx, edx
mov edx, ecx
and edx, 0xfffffffd
mov edi, ecx
and edi, 2
mov ebx, edi
xor ebx, 2
imul ebx, edx
mov edx, ecx
or edx, 2
imul edx, edi
add edx, ebx
not edx
add ecx, edx
and eax, ecx
mov ecx, eax
and ecx, 2
mov edx, ecx
xor edx, 2
mov edi, eax
and edi, 0xfffffffd
imul edi, edx
mov edx, ecx
not edx
lea eax, [eax + edx + 3]
imul eax, ecx
add eax, edi
neg eax
mov ecx, dword [esi + 4]
lea eax, [ecx + eax + 0x2765171e]
add eax, dword [esi + 0x74]
mov dword [esi + 0xc8], eax
mov ecx, dword [esi + 0xc8]
mov eax, ecx
xor eax, 0xffffffff
mov edx, ecx
and edx, 0xd2
xor edx, 0xd2
add ecx, 1
or eax, 0x2d
add eax, ecx
mov ecx, dword [esi + 0x5c]
sub eax, edx
mov edx, dword [esi + 4]
mov byte [ecx + edx], al
mov eax, dword [esi + 4]
add eax, 1
jmp 0x43660b
mov al, 1
mov edx, dword [esi + 0x88]
cmp edx, dword [ecx]
je 0x436811
mov eax, dword [esi + 8]
mov eax, dword [eax + 8]
mov dword [esi + 0x80], eax
mov eax, dword [esi + 0xa8]
mov al, byte [eax]
mov byte [esi + 0x48], al
mov ecx, dword [esi + 0xac]
mov byte [ecx], 0x59
mov byte [ecx + 1], 0x58
mov byte [ecx + 2], 0x52
mov byte [ecx + 3], 0xa6
mov eax, 4
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 0xe
jne 0x436720
mov dword [esi + 0x54], ecx
mov dword [esi + 0x10], 0
cmp dword [esi + 0x10], 0xe
jae 0x436803
call fcn.00409740
call fcn.00409740
mov eax, dword [esi + 0x54]
mov edi, dword [esi + 0x10]
movzx ebx, byte [eax + edi]
call fcn.00409740
call fcn.00409740
call fcn.00409740
call fcn.00409740
call fcn.00409740
call fcn.00409740
call fcn.00409740
call fcn.00409740
call fcn.00409740
call fcn.00409740
mov edx, edi
and edx, 0xd7eff634
add edx, edx
xor edi, 0xa81009cb
sub edx, edi
mov eax, edx
add eax, 0x9995d975
mov ecx, 0x666a268a
sub ecx, edx
mov edx, ecx
and edx, 0x33fb7172
mov edi, eax
and edi, 0xcc048e8d
or edx, edi
xor edx, 0x33fb7172
or eax, edx
mov edx, ebx
add edx, edx
sub edx, ebx
and eax, edx
not ebx
and ebx, ecx
mov ecx, ebx
not ecx
mov edx, eax
and edx, ecx
mov ecx, eax
xor ecx, ebx
add eax, ecx
not eax
add edx, eax
mov dword [esi + 0xcc], edx
mov eax, dword [esi + 0xcc]
add al, 0x5a
mov ecx, dword [esi + 0x54]
mov edx, dword [esi + 0x10]
mov byte [ecx + edx], al
mov eax, dword [esi + 0x10]
add eax, 1
mov dword [esi + 0x10], eax
jmp 0x436736
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x80]
cmp ecx, dword [eax]
sete al
test al, 1
jne 0x436817
jmp 0x436828
mov eax, dword [esi + 0x64]
mov byte [eax], 1
mov ecx, dword [esi + 0x60]
mov dword [ecx], 1
jmp 0x436837
mov eax, dword [esi + 0x64]
mov byte [eax], 0
mov ecx, dword [esi + 0x60]
mov dword [ecx], 1
mov al, byte [eax]
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret