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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xc0
mov esi, esp
mov eax, dword [0x45cad4]
mov ecx, dword [0x45cad8]
mov dword [esi + 0x90], ecx
lea ecx, [eax - 1]
imul ecx, eax
mov dword [esi + 0x94], ecx
mov dword [esi + 0x1c], 0xefd72bf
mov eax, dword [esi + 0x1c]
cmp eax, 0x139c58f4
jle 0x430154
cmp eax, 0x392b99af
jg 0x4301cf
cmp eax, 0x260952e2
jg 0x430359
cmp eax, 0x139c58f5
je 0x430823
cmp eax, 0x1ca97448
je 0x430908
cmp eax, 0x222e4fe0
jne 0x4300f1
mov eax, dword [0x45cad4]
mov ecx, dword [0x45cad8]
mov dword [esi + 0xa8], ecx
lea ecx, [eax - 1]
imul ecx, eax
mov dword [esi + 0xac], ecx
mov dword [esi + 0x1c], 0xcc9e3f4a
jmp 0x4300f1
cmp eax, 0xcc9e3f49
jg 0x4302e2
cmp eax, 0xb5ce0ecc
jg 0x430399
cmp eax, 0x8079709a
je 0x430914
cmp eax, 0xa8f2a17c
je 0x430976
cmp eax, 0xb0c781ac
jne 0x4300f1
mov eax, dword [esi + 0xa0]
cmp eax, 0xa
setge dl
setl ah
mov al, byte [esi + 0x23]
mov ecx, eax
xor cl, 1
and ah, cl
and al, dl
or al, ah
mov ah, cl
and ah, dl
xor cl, dl
or cl, ah
mov edx, ecx
xor dl, al
not al
not dl
or al, cl
not al
or al, dl
and al, 1
mov byte [esi + 0x24], al
mov dword [esi + 0x1c], 0xa8f2a17c
jmp 0x4300f1
cmp eax, 0x5805d557
jg 0x430540
cmp eax, 0x392b99b0
je 0x430989
cmp eax, 0x3eae2870
je 0x430d0e
cmp eax, 0x4908488e
jne 0x4300f1
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
shld ebx, eax, 0x16
push 1
mov eax, 0xa
push eax
call fcn.0043f591
add esp, 8
mov edi, eax
mov eax, 0xa
push eax
push edi
push ebx
call fcn.0043e9d0
add esp, 0xc
push 0x455e34
call fcn.004263cc
add esp, 4
push eax
push dword [esi + 0xc]
call fcn.0043fd30
add esp, 8
push edi
push dword [esi + 0xc]
call fcn.0043fd30
add esp, 8
push dword [esi + 0xc]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 0xc]
mov dword [ecx + eax], 0xa424d
push dword [esi + 0xc]
call fcn.0043ff10
add esp, 4
mov edi, eax
push 0x45628a
call fcn.0042778b
add esp, 4
push edi
push dword [esi + 0xc]
push eax
push dword [ebp + 8]
call fcn.0041b70a
add esp, 0x10
mov eax, dword [esi + 0x50]
mov eax, dword [esi + 0x3c]
mov eax, dword [esi + 0x38]
mov eax, dword [esi + 0x68]
mov eax, dword [esi + 0x64]
mov dword [esi + 0x1c], 0xb5ce0ecd
jmp 0x4300f1
cmp eax, 0xf56c455d
jle 0x430801
cmp eax, 0xf56c455e
je 0x430d88
cmp eax, 0xee04029
je 0x430da1
cmp eax, 0xefd72bf
jne 0x4300f1
mov eax, dword [esi + 0x94]
mov ecx, eax
not ecx
and ecx, 0xfffffffe
xor eax, 1
or eax, ecx
xor eax, 0xffffffff
sete cl
setne dl
mov eax, dword [esi + 0x90]
cmp eax, 0xa
setl al
setge ah
or ah, dl
xor al, cl
xor al, 1
mov cl, ah
xor cl, al
or al, ah
not al
or al, cl
and al, 1
mov byte [esi + 0x22], al
mov dword [esi + 0x1c], 0xf56c455e
jmp 0x4300f1
cmp eax, 0x260952e3
je 0x430dd7
cmp eax, 0x2849bf90
je 0x43101d
cmp eax, 0x2fd9d565
jne 0x4300f1
mov eax, dword [0x45cad4]
mov dword [esi + 0x6c], eax
mov eax, dword [0x45cad8]
mov dword [esi + 0x98], eax
mov dword [esi + 0x1c], 0x5805d558
jmp 0x4300f1
cmp eax, 0xb5ce0ecd
je 0x4312b0
cmp eax, 0xb5fc1644
je 0x4314c1
cmp eax, 0xc65b698e
jne 0x4300f1
xor edi, edi
push edi
push dword [esi + 0x34]
push edi
push edi
call dword [str.mt_MT]
push dword [esi + 8]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 8]
mov edx, 0x203a55
mov dword [ecx + eax + 4], edx
mov edx, 0x5047202d
mov dword [ecx + eax], edx
mov eax, dword [esi + 0x34]
add eax, 0x24
push eax
push dword [esi + 8]
call fcn.0043fd30
add esp, 8
push dword [esi + 8]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 8]
mov word [ecx + eax], 0xa
mov eax, dword [esi + 0x4c]
mov eax, dword [esi + 0x4c]
mov dword [eax + 4], edi
mov dword [eax], edi
push 0x456e38
push 0x5f086d32
call fcn.004318a8
add esp, 8
push dword [esi + 0x4c]
call eax
mov eax, dword [esi + 0x4c]
mov ecx, dword [eax]
mov ebx, dword [eax + 4]
shld ebx, ecx, 0x16
push 1
mov eax, 0xa
push eax
call fcn.0043f591
add esp, 8
mov edi, eax
mov eax, 0xa
push eax
push edi
push ebx
call fcn.0043e9d0
add esp, 0xc
push 0x455e34
call fcn.004263cc
add esp, 4
push eax
push dword [esi + 8]
call fcn.0043fd30
add esp, 8
push edi
push dword [esi + 8]
call fcn.0043fd30
add esp, 8
push dword [esi + 8]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 8]
mov dword [ecx + eax], 0xa424d
push dword [esi + 8]
call fcn.0043ff10
add esp, 4
mov edi, eax
push 0x45628a
call fcn.0042778b
add esp, 4
push edi
push dword [esi + 8]
push eax
push dword [ebp + 8]
call fcn.0041b70a
add esp, 0x10
mov eax, dword [esi + 0x4c]
mov eax, dword [esi + 0x34]
mov eax, dword [esi + 0x30]
mov eax, dword [esi + 0x60]
mov eax, dword [esi + 0x5c]
mov eax, dword [0x45cad4]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
not eax
and ecx, 0xd6e01961
mov edx, eax
and edx, 0x291fe69e
or edx, ecx
xor edx, 0x291fe69f
and eax, 0xfffffffe
or eax, edx
cmp eax, 0xffffffff
sete al
mov ecx, 0xa
cmp dword [0x45cad8], ecx
setl cl
xor al, cl
mov edx, eax
not dl
and dl, cl
mov ecx, edx
xor cl, al
test al, al
mov eax, 0x260952e3
mov edi, 0x1ca97448
cmovne eax, edi
test dl, dl
mov edx, 0x260952e3
cmove eax, edx
test cl, cl
cmovne eax, edi
mov dword [esi + 0x1c], eax
jmp 0x4300f1
cmp eax, 0x5805d558
je 0x4314cd
cmp eax, 0x70b1ca8e
je 0x4314e3
cmp eax, 0x79c43b99
jne 0x4300f1
mov eax, dword [esi + 0xb0]
mov cx, 0xa
mov word [eax], cx
mov eax, dword [esi + 0x30]
push dword [esi + 0x30]
call fcn.00436714
add esp, 4
mov ebx, eax
xor eax, eax
inc eax
push eax
push 0x800
call fcn.0043f591
add esp, 8
mov edi, eax
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x30]
mov edx, dword [esi + 0x30]
push dword [eax + 8]
push dword [ecx + 4]
push dword [edx]
push dword [ebx*4 + 0x45c00c]
push 0x455dfd
push 0x7ff
push edi
call fcn.00424710
add esp, 0x1c
push dword [esi + 8]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 8]
mov dword [ecx + eax], 0x534f202d
mov dword [ecx + eax + 4], 0x72655620
mov dword [ecx + eax + 8], 0x6e6f6973
mov dword [ecx + eax + 0xb], 0x203a6e
push edi
push dword [esi + 8]
call fcn.0043fd30
add esp, 8
push dword [esi + 8]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 8]
mov di, 0xa
mov word [ecx + eax], di
push 0x455e8c
call fcn.004263cc
add esp, 4
push eax
push dword [esi + 8]
call fcn.0043fd30
add esp, 8
call fcn.0041ec9a
push eax
push dword [esi + 8]
call fcn.0043fd30
add esp, 8
push dword [esi + 8]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 8]
mov word [ecx + eax], di
mov di, 0xa
push dword [esi + 8]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 8]
movups xmm0, xmmword [0x455e64]
movups xmmword [ecx + eax], xmm0
movsd xmm0, qword [0x455e71]
movsd qword [ecx + eax + 0xd], xmm0
push dword [esi + 0x74]
push dword [esi + 8]
call fcn.0043fd30
add esp, 8
push dword [esi + 8]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 8]
mov word [ecx + eax], pe_nt_image_headers32
push dword [esi + 0x78]
push dword [esi + 8]
call fcn.0043fd30
add esp, 8
push dword [esi + 8]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 8]
mov word [ecx + eax], di
push 2
mov ebx, 0x55
push ebx
call fcn.0043f591
add esp, 8
mov edi, eax
push 0x456e38
push 0x2f9959e0
call fcn.004318a8
add esp, 8
push ebx
push edi
call eax
xor eax, eax
inc eax
push eax
push ebx
call fcn.0043f591
add esp, 8
mov ebx, eax
mov eax, 0x55
push eax
push edi
push ebx
call fcn.00443847
add esp, 0xc
push dword [esi + 8]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 8]
mov dword [ecx + eax], 0x614c202d
mov dword [ecx + eax + 4], 0x6175676e
mov dword [ecx + eax + 8], 0x203a6567
mov byte [ecx + eax + 0xc], 0
push ebx
push dword [esi + 8]
call fcn.0043fd30
add esp, 8
push dword [esi + 8]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 8]
mov dx, 0xa
mov word [ecx + eax], dx
xor eax, eax
inc eax
push eax
push 0x41
call fcn.0043f591
add esp, 8
mov edi, eax
mov eax, 0x80000002
xor ecx, ecx
cpuid
mov dword [edi], eax
mov dword [edi + 4], ebx
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
mov eax, 0x80000003
mov ecx, 0
cpuid
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], ecx
mov dword [edi + 0x1c], edx
mov eax, 0x80000004
xor ecx, ecx
cpuid
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], ebx
mov dword [edi + 0x28], ecx
mov dword [edi + 0x2c], edx
push 0x455e79
call fcn.004263cc
add esp, 4
push eax
push dword [esi + 8]
call fcn.0043fd30
add esp, 8
push edi
push dword [esi + 8]
call fcn.0043fd30
add esp, 8
push dword [esi + 8]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 8]
mov dx, 0xa
mov word [ecx + eax], dx
mov eax, dword [esi + 0x34]
mov eax, dword [esi + 0x34]
add eax, 4
push 0x1a4
push 0
push eax
call fcn.0043af30
add esp, 0xc
mov eax, dword [esi + 0x34]
mov dword [eax], 0x1a8
mov dword [esi + 0x1c], 0xc65b698e
jmp 0x4300f1
cmp eax, 0xcc9e3f4a
je 0x431863
cmp eax, 0xd173c30e
jne 0x431895
mov dword [esi + 0x1c], 0x2fd9d565
jmp 0x4300f1
mov eax, dword [esi + 0xa4]
cmp eax, 0xa
setge ch
setl cl
mov dh, byte [esi + 0x25]
mov ah, dh
xor ah, 1
mov al, cl
xor al, ah
mov dl, cl
xor dl, dh
xor dl, 1
and dl, dh
or dh, cl
xor dh, 1
mov ebx, edx
and bl, dh
xor dh, dl
or dh, bl
mov dl, dh
xor dl, 1
and dh, dl
mov ebx, edx
xor bl, dh
or bl, dh
mov dh, bl
xor dh, 1
xor ah, ch
or ah, cl
mov cl, ah
xor cl, 1
mov ch, ah
and ch, cl
xor ah, ch
or ah, ch
mov ch, dh
and ch, bl
xor dh, ch
or dh, ch
xor dh, ah
mov ch, cl
xor ch, bl
or cl, bl
mov ah, al
xor ah, 1
xor cl, 1
or cl, ch
xor cl, 1
mov ch, dh
and ch, cl
xor cl, dh
or cl, ch
mov ch, ah
xor ch, cl
xor ch, 1
and ch, cl
xor cl, al
and cl, al
xor ch, 1
xor cl, 1
mov dh, ch
xor dh, cl
or cl, ch
xor cl, 1
or cl, dh
and al, ah
xor ah, al
or ah, al
xor ah, 1
mov al, dl
and al, ah
xor ah, dl
or ah, al
mov dl, ah
xor dl, 1
mov al, cl
xor al, ah
and al, cl
and ah, cl
xor cl, 1
and cl, dl
or ah, cl
mov ecx, eax
xor cl, ah
test cl, 1
mov ecx, 0x222e4fe0
mov edi, 0xd86c9c2d
cmovne ecx, edi
test ah, 1
mov edx, ecx
cmovne edx, edi
test al, 1
cmove edx, ecx
mov dword [esi + 0x1c], edx
jmp 0x4300f1
mov dword [esi + 0x1c], 0x70b1ca8e
jmp 0x4300f1
mov al, byte [esi + 0x26]
mov cl, byte [esi + 0x27]
mov edx, eax
xor dl, 1
mov ah, cl
xor ah, 1
mov ch, al
and ch, dl
and ah, cl
xor ch, 1
mov dh, ch
xor dh, dl
or ch, dl
xor ch, 1
or ch, dh
mov dl, ah
xor dl, cl
or dl, ah
xor dl, ch
mov ah, al
xor ah, cl
or al, cl
xor al, 1
or al, ah
mov ecx, eax
xor cl, dl
test cl, 1
mov ecx, 0xb5ce0ecd
mov edi, 0x260952e3
cmovne ecx, edi
test al, 1
mov eax, 0xb5ce0ecd
cmovne eax, ecx
test dl, 1
cmove eax, ecx
mov dword [esi + 0x1c], eax
jmp 0x4300f1
cmp byte [esi + 0x24], 0
mov eax, 0x222e4fe0
mov ecx, 0x70b1ca8e
jmp 0x430d96
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x38]
mov edi, dword [esi + 0xb4]
push dword [eax + 8]
push dword [ecx + 4]
push dword [edx]
push dword [edi*4 + 0x45c00c]
push 0x455dfd
push 0x7ff
push dword [esi + 0x84]
call fcn.00424710
add esp, 0x1c
push dword [esi + 0xc]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 0xc]
mov dword [ecx + eax], 0x534f202d
mov dword [ecx + eax + 4], 0x72655620
mov dword [ecx + eax + 8], 0x6e6f6973
mov dword [ecx + eax + 0xb], 0x203a6e
push dword [esi + 0x84]
push dword [esi + 0xc]
call fcn.0043fd30
add esp, 8
push dword [esi + 0xc]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 0xc]
mov dx, 0xa
mov word [ecx + eax], dx
mov di, 0xa
push 0x455e8c
call fcn.004263cc
add esp, 4
push eax
push dword [esi + 0xc]
call fcn.0043fd30
add esp, 8
call fcn.0041ec9a
push eax
push dword [esi + 0xc]
call fcn.0043fd30
add esp, 8
push dword [esi + 0xc]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 0xc]
mov word [ecx + eax], di
mov di, 0xa
push dword [esi + 0xc]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 0xc]
movups xmm0, xmmword [0x455e64]
movups xmmword [ecx + eax], xmm0
movsd xmm0, qword [0x455e71]
movsd qword [ecx + eax + 0xd], xmm0
push dword [esi + 0x7c]
push dword [esi + 0xc]
call fcn.0043fd30
add esp, 8
push dword [esi + 0xc]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 0xc]
mov word [ecx + eax], pe_nt_image_headers32
push dword [esi + 0x80]
push dword [esi + 0xc]
call fcn.0043fd30
add esp, 8
push dword [esi + 0xc]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 0xc]
mov word [ecx + eax], di
push 2
mov ebx, 0x55
push ebx
call fcn.0043f591
add esp, 8
mov edi, eax
mov eax, 0x456e38
push eax
push 0x2f9959e0
call fcn.004318a8
add esp, 8
push ebx
push edi
call eax
xor eax, eax
inc eax
push eax
push ebx
call fcn.0043f591
add esp, 8
mov ebx, eax
mov eax, 0x55
push eax
push edi
push ebx
call fcn.00443847
add esp, 0xc
push dword [esi + 0xc]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 0xc]
mov dword [ecx + eax], 0x614c202d
mov dword [ecx + eax + 4], 0x6175676e
mov dword [ecx + eax + 8], 0x203a6567
mov byte [ecx + eax + 0xc], 0
push ebx
push dword [esi + 0xc]
call fcn.0043fd30
add esp, 8
push dword [esi + 0xc]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 0xc]
mov dx, 0xa
mov word [ecx + eax], dx
xor eax, eax
inc eax
push eax
push 0x41
call fcn.0043f591
add esp, 8
mov edi, eax
mov eax, 0x80000002
xor ecx, ecx
cpuid
mov dword [edi], eax
mov dword [edi + 4], ebx
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
mov eax, 0x80000003
mov ecx, 0
cpuid
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], ecx
mov dword [edi + 0x1c], edx
mov eax, 0x80000004
xor ecx, ecx
cpuid
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], ebx
mov dword [edi + 0x28], ecx
mov dword [edi + 0x2c], edx
push 0x455e79
call fcn.004263cc
add esp, 4
push eax
push dword [esi + 0xc]
call fcn.0043fd30
add esp, 8
push edi
push dword [esi + 0xc]
call fcn.0043fd30
add esp, 8
push dword [esi + 0xc]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 0xc]
mov bx, 0xa
mov word [ecx + eax], bx
mov eax, dword [esi + 0x3c]
mov eax, dword [esi + 0x3c]
add eax, 4
push 0x1a4
xor edi, edi
push edi
push eax
call fcn.0043af30
add esp, 0xc
mov eax, dword [esi + 0x3c]
mov dword [eax], 0x1a8
push edi
push dword [esi + 0x3c]
push edi
push edi
call dword [str.mt_MT]
push dword [esi + 0xc]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 0xc]
mov edx, 0x203a55
mov dword [ecx + eax + 4], edx
mov edx, 0x5047202d
mov dword [ecx + eax], edx
mov eax, dword [esi + 0x3c]
add eax, 0x24
push eax
push dword [esi + 0xc]
call fcn.0043fd30
add esp, 8
push dword [esi + 0xc]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 0xc]
mov word [ecx + eax], bx
mov eax, dword [esi + 0x50]
mov eax, dword [esi + 0x50]
mov dword [eax + 4], edi
mov dword [eax], edi
mov eax, 0x456e38
push eax
push 0x5f086d32
call fcn.004318a8
add esp, 8
push dword [esi + 0x50]
call eax
mov eax, dword [esi + 0x50]
movsd xmm0, qword [eax]
movsd qword [esi + 0x10], xmm0
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov dword [esi + 0x1c], 0x4908488e
jmp 0x4300f1
mov ecx, dword [esi + 0x6c]
imul ecx, dword [esi + 0x9c]
mov eax, ecx
not eax
and ecx, 0xf1362ffa
mov edx, eax
and edx, 0xec9d005
or edx, ecx
xor edx, 0xec9d004
and eax, 0xfffffffe
or eax, edx
xor eax, 0x43bb6e8c
xor eax, 0xbc449173
sete cl
setne al
mov edx, dword [esi + 0x98]
cmp edx, 0xa
setl dl
setge ah
and dl, al
or al, ah
and cl, ah
or cl, dl
mov edx, eax
xor dl, cl
test cl, cl
mov ecx, 0xb5fc1644
mov edi, 0xee04029
cmovne ecx, edi
test al, al
mov eax, 0xb5fc1644
cmovne ecx, eax
test dl, dl
cmove ecx, edi
mov dword [esi + 0x1c], ecx
jmp 0x4300f1
cmp byte [esi + 0x22], 0
mov eax, 0xb5fc1644
mov ecx, 0x2fd9d565
cmovne eax, ecx
mov dword [esi + 0x1c], eax
jmp 0x4300f1
mov ecx, dword [0x45cad4]
mov eax, dword [0x45cad8]
mov dword [esi + 0xa0], eax
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
and ecx, 0xfffffffe
xor eax, 1
or eax, ecx
cmp eax, 0xffffffff
sete byte [esi + 0x23]
mov dword [esi + 0x1c], 0xb0c781ac
jmp 0x4300f1
push eax
mov eax, esp
mov dword [esi + 0x64], eax
push eax
mov eax, esp
mov dword [esi + 0x68], eax
sub esp, 0x10
mov eax, esp
mov dword [esi + 0x38], eax
sub esp, 0x1a8
mov eax, esp
mov dword [esi + 0x3c], eax
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [esi + 0x50], eax
mov ebx, 0x456e22
push ebx
mov edi, 0x3d95e230
push edi
call fcn.004318a8
add esp, 8
push 0
call eax
mov dword [esi + 0x44], eax
push ebx
push edi
call fcn.004318a8
add esp, 8
xor edi, edi
inc edi
push edi
call eax
mov dword [esi + 0x40], eax
push edi
mov ebx, 0x20
push ebx
call fcn.0043f591
add esp, 8
mov dword [esi + 0x7c], eax
push edi
push ebx
call fcn.0043f591
add esp, 8
mov dword [esi + 0x80], eax
mov edi, 0xa
push edi
push dword [esi + 0x7c]
push dword [esi + 0x44]
call fcn.0043e9d0
add esp, 0xc
push edi
push dword [esi + 0x80]
push dword [esi + 0x40]
call fcn.0043e9d0
add esp, 0xc
xor edi, edi
inc edi
push edi
push 0x1000
call fcn.0043f591
add esp, 8
mov dword [esi + 0xc], eax
push 0x455eb1
call fcn.004263cc
add esp, 4
push eax
push dword [esi + 0xc]
call fcn.0043fd30
add esp, 8
push 0x455e9b
call fcn.004263cc
add esp, 4
push eax
push dword [esi + 0xc]
call fcn.0043fd30
add esp, 8
push dword [esi + 0xc]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 0xc]
movups xmm0, xmmword [0x45599a]
movups xmmword [ecx + eax], xmm0
movups xmm0, xmmword [0x4559aa]
movups xmmword [ecx + eax + 0x10], xmm0
xor ebx, ebx
mov byte [ecx + eax + 0x20], bl
push dword [esi + 0xc]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 0xc]
mov byte [ecx + eax + 2], bl
mov word [ecx + eax], 0xa0a
push edi
mov ebx, 0x8000
push ebx
call fcn.0043f591
add esp, 8
mov edi, eax
mov eax, dword [esi + 0x64]
mov eax, dword [esi + 0x64]
mov dword [eax], ebx
push 0x456e38
push 0xa2f80070
call fcn.004318a8
add esp, 8
push dword [esi + 0x64]
push edi
call eax
push dword [esi + 0xc]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 0xc]
mov dword [ecx + eax], 0x4350202d
mov dword [ecx + eax + 3], 0x203a43
push edi
push dword [esi + 0xc]
call fcn.0043fd30
add esp, 8
push dword [esi + 0xc]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 0xc]
mov dx, 0xa
mov word [ecx + eax], dx
xor eax, eax
inc eax
push eax
push ebx
call fcn.0043f591
add esp, 8
mov edi, eax
mov eax, dword [esi + 0x68]
mov eax, dword [esi + 0x68]
mov dword [eax], ebx
push 0x456e52
push 0x23fef64a
call fcn.004318a8
add esp, 8
push dword [esi + 0x68]
push edi
call eax
push dword [esi + 0xc]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 0xc]
xor edx, edx
mov byte [ecx + eax + 8], dl
mov dword [ecx + eax], 0x7355202d
mov dword [ecx + eax + 4], 0x203a7265
push edi
push dword [esi + 0xc]
call fcn.0043fd30
add esp, 8
push dword [esi + 0xc]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 0xc]
mov dx, 0xa
mov word [ecx + eax], dx
mov eax, dword [esi + 0x38]
push dword [esi + 0x38]
call fcn.00436714
add esp, 4
mov dword [esi + 0xb4], eax
xor eax, eax
inc eax
push eax
push 0x800
call fcn.0043f591
add esp, 8
mov dword [esi + 0x84], eax
mov dword [esi + 0x1c], 0x392b99b0
jmp 0x4300f1
mov eax, 0x456e38
push eax
push 0x2f9959e0
call fcn.004318a8
add esp, 8
mov ebx, 0x55
push ebx
push dword [esi + 0x70]
call eax
xor eax, eax
inc eax
push eax
push ebx
call fcn.0043f591
add esp, 8
mov edi, eax
push ebx
push dword [esi + 0x70]
push eax
call fcn.00443847
add esp, 0xc
push dword [esi + 4]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 4]
mov dword [ecx + eax], 0x614c202d
mov dword [ecx + eax + 4], 0x6175676e
mov dword [ecx + eax + 8], 0x203a6567
mov byte [ecx + eax + 0xc], 0
push edi
push dword [esi + 4]
call fcn.0043fd30
add esp, 8
push dword [esi + 4]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 4]
mov dx, 0xa
mov word [ecx + eax], dx
xor eax, eax
inc eax
push eax
push 0x41
call fcn.0043f591
add esp, 8
mov edi, eax
mov eax, 0x80000002
xor ecx, ecx
cpuid
mov dword [edi], eax
mov dword [edi + 4], ebx
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
mov eax, 0x80000003
mov ecx, 0
cpuid
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], ecx
mov dword [edi + 0x1c], edx
mov eax, 0x80000004
xor ecx, ecx
cpuid
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], ebx
mov dword [edi + 0x28], ecx
mov dword [edi + 0x2c], edx
push 0x455e79
call fcn.004263cc
add esp, 4
push eax
push dword [esi + 4]
call fcn.0043fd30
add esp, 8
push edi
push dword [esi + 4]
call fcn.0043fd30
add esp, 8
push dword [esi + 4]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 4]
mov bx, 0xa
mov word [ecx + eax], bx
mov eax, dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
add eax, 4
push 0x1a4
xor edi, edi
push edi
push eax
call fcn.0043af30
add esp, 0xc
mov eax, dword [esi + 0x2c]
mov dword [eax], 0x1a8
push edi
push dword [esi + 0x2c]
push edi
push edi
call dword [str.mt_MT]
push dword [esi + 4]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 4]
mov edx, 0x203a55
mov dword [ecx + eax + 4], edx
mov edx, 0x5047202d
mov dword [ecx + eax], edx
mov eax, dword [esi + 0x2c]
add eax, 0x24
push eax
push dword [esi + 4]
call fcn.0043fd30
add esp, 8
push dword [esi + 4]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 4]
mov word [ecx + eax], bx
mov eax, dword [esi + 0x48]
mov eax, dword [esi + 0x48]
mov dword [eax + 4], edi
mov dword [eax], edi
mov eax, 0x456e38
push eax
push 0x5f086d32
call fcn.004318a8
add esp, 8
push dword [esi + 0x48]
call eax
mov eax, dword [esi + 0x48]
mov ecx, dword [eax]
mov ebx, dword [eax + 4]
shld ebx, ecx, 0x16
xor eax, eax
inc eax
push eax
mov eax, 0xa
push eax
call fcn.0043f591
add esp, 8
mov edi, eax
mov eax, 0xa
push eax
push edi
push ebx
call fcn.0043e9d0
add esp, 0xc
push 0x455e34
call fcn.004263cc
add esp, 4
push eax
push dword [esi + 4]
call fcn.0043fd30
add esp, 8
push edi
push dword [esi + 4]
call fcn.0043fd30
add esp, 8
push dword [esi + 4]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 4]
mov dword [ecx + eax], 0xa424d
push dword [esi + 4]
call fcn.0043ff10
add esp, 4
mov edi, eax
push 0x45628a
call fcn.0042778b
add esp, 4
push edi
push dword [esi + 4]
push eax
push dword [ebp + 8]
call fcn.0041b70a
add esp, 0x10
mov eax, dword [esi + 0x48]
mov eax, dword [esi + 0x2c]
mov eax, dword [esi + 0x28]
mov eax, dword [esi + 0x58]
mov eax, dword [esi + 0x54]
mov eax, dword [0x45cad4]
mov ecx, dword [0x45cad8]
mov dword [esi + 0xa4], ecx
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
not eax
and ecx, 0x41f4ac99
mov edx, eax
and edx, 0xbe0b5366
or edx, ecx
xor edx, 0xbe0b5367
and eax, 0xfffffffe
or eax, edx
cmp eax, 0xffffffff
sete byte [esi + 0x25]
mov dword [esi + 0x1c], 0x139c58f5
jmp 0x4300f1
push eax
mov eax, esp
mov dword [esi + 0x5c], eax
push eax
mov eax, esp
mov dword [esi + 0x60], eax
sub esp, 0x10
mov eax, esp
mov dword [esi + 0x30], eax
sub esp, 0x1a8
mov eax, esp
mov dword [esi + 0x34], eax
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [esi + 0x4c], eax
mov ebx, 0x456e22
push ebx
mov edi, 0x3d95e230
push edi
call fcn.004318a8
add esp, 8
push 0
call eax
mov dword [esi + 0x44], eax
push ebx
push edi
call fcn.004318a8
add esp, 8
xor edi, edi
inc edi
push edi
call eax
mov dword [esi + 0x40], eax
push edi
mov ebx, 0x20
push ebx
call fcn.0043f591
add esp, 8
mov dword [esi + 0x74], eax
push edi
push ebx
call fcn.0043f591
add esp, 8
mov dword [esi + 0x78], eax
mov edi, 0xa
push edi
push dword [esi + 0x74]
push dword [esi + 0x44]
call fcn.0043e9d0
add esp, 0xc
push edi
push dword [esi + 0x78]
push dword [esi + 0x40]
call fcn.0043e9d0
add esp, 0xc
xor edi, edi
inc edi
push edi
push 0x1000
call fcn.0043f591
add esp, 8
mov dword [esi + 8], eax
push 0x455eb1
call fcn.004263cc
add esp, 4
push eax
push dword [esi + 8]
call fcn.0043fd30
add esp, 8
push 0x455e9b
call fcn.004263cc
add esp, 4
push eax
push dword [esi + 8]
call fcn.0043fd30
add esp, 8
push dword [esi + 8]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 8]
movups xmm0, xmmword [0x45599a]
movups xmmword [ecx + eax], xmm0
movups xmm0, xmmword [0x4559aa]
movups xmmword [ecx + eax + 0x10], xmm0
xor ebx, ebx
mov byte [ecx + eax + 0x20], bl
push dword [esi + 8]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 8]
mov byte [ecx + eax + 2], bl
mov word [ecx + eax], 0xa0a
push edi
mov ebx, 0x8000
push ebx
call fcn.0043f591
add esp, 8
mov edi, eax
mov eax, dword [esi + 0x5c]
mov eax, dword [esi + 0x5c]
mov dword [eax], ebx
push 0x456e38
push 0xa2f80070
call fcn.004318a8
add esp, 8
push dword [esi + 0x5c]
push edi
call eax
push dword [esi + 8]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 8]
mov dword [ecx + eax], 0x4350202d
mov dword [ecx + eax + 3], 0x203a43
push edi
push dword [esi + 8]
call fcn.0043fd30
add esp, 8
push dword [esi + 8]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 8]
mov word [ecx + eax], 0xa
xor eax, eax
inc eax
push eax
push ebx
call fcn.0043f591
add esp, 8
mov edi, eax
mov eax, dword [esi + 0x60]
mov eax, dword [esi + 0x60]
mov dword [eax], ebx
push 0x456e52
push 0x23fef64a
call fcn.004318a8
add esp, 8
push dword [esi + 0x60]
push edi
call eax
push dword [esi + 8]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 8]
xor edx, edx
mov byte [ecx + eax + 8], dl
mov dword [ecx + eax], 0x7355202d
mov dword [ecx + eax + 4], 0x203a7265
push edi
push dword [esi + 8]
call fcn.0043fd30
add esp, 8
push dword [esi + 8]
call fcn.0043ff10
add esp, 4
add eax, dword [esi + 8]
mov dword [esi + 0xb0], eax
mov dword [esi + 0x1c], 0x79c43b99
jmp 0x4300f1
mov dword [esi + 0x1c], 0xd173c30e
jmp 0x4300f1
mov eax, dword [esi + 0x6c]
dec eax
mov dword [esi + 0x9c], eax
mov dword [esi + 0x1c], 0x3eae2870
jmp 0x4300f1
push eax
mov eax, esp
mov dword [esi + 0x54], eax
push eax
mov eax, esp
mov dword [esi + 0x58], eax
sub esp, 0x10
mov eax, esp
mov dword [esi + 0x28], eax
sub esp, 0x1a8
mov eax, esp
mov dword [esi + 0x2c], eax
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [esi + 0x48], eax
mov ebx, 0x456e22
push ebx
mov edi, 0x3d95e230
push edi
call fcn.004318a8
add esp, 8
push 0
call eax
mov dword [esi + 0x8c], eax
push ebx
push edi
call fcn.004318a8
add esp, 8
xor ebx, ebx
inc ebx
push ebx
call eax
mov dword [esi + 0x88], eax
push ebx
mov eax, 0x20
push eax
call fcn.0043f591
add esp, 8
mov edi, eax
mov dword [esi + 0x40], eax
push ebx
mov eax, 0x20
push eax
call fcn.0043f591
add esp, 8
mov ebx, eax
mov dword [esi + 0x44], eax
mov eax, 0xa
push eax
push edi
push dword [esi + 0x8c]
call fcn.0043e9d0
add esp, 0xc
mov eax, 0xa
push eax
push ebx
push dword [esi + 0x88]
call fcn.0043e9d0
add esp, 0xc
xor edi, edi
inc edi
push edi
push 0x1000
call fcn.0043f591
add esp, 8
mov dword [esi + 4], eax
push 0x455eb1
call fcn.004263cc
add esp, 4
push eax
push dword [esi + 4]
call fcn.0043fd30
add esp, 8
push 0x455e9b
call fcn.004263cc
add esp, 4
push eax
push dword [esi + 4]
call fcn.0043fd30
add esp, 8
push dword [esi + 4]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 4]
movups xmm0, xmmword [0x45599a]
movups xmmword [ecx + eax], xmm0
movups xmm0, xmmword [0x4559aa]
movups xmmword [ecx + eax + 0x10], xmm0
xor ebx, ebx
mov byte [ecx + eax + 0x20], bl
push dword [esi + 4]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 4]
mov byte [ecx + eax + 2], bl
mov word [ecx + eax], 0xa0a
push edi
mov ebx, 0x8000
push ebx
call fcn.0043f591
add esp, 8
mov edi, eax
mov eax, dword [esi + 0x54]
mov eax, dword [esi + 0x54]
mov dword [eax], ebx
push 0x456e38
push 0xa2f80070
call fcn.004318a8
add esp, 8
push dword [esi + 0x54]
push edi
call eax
push dword [esi + 4]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 4]
mov dword [ecx + eax], 0x4350202d
mov dword [ecx + eax + 3], 0x203a43
push edi
push dword [esi + 4]
call fcn.0043fd30
add esp, 8
push dword [esi + 4]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 4]
mov dx, 0xa
mov word [ecx + eax], dx
xor eax, eax
inc eax
push eax
push ebx
call fcn.0043f591
add esp, 8
mov edi, eax
mov eax, dword [esi + 0x58]
mov eax, dword [esi + 0x58]
mov dword [eax], ebx
push 0x456e52
push 0x23fef64a
call fcn.004318a8
add esp, 8
push dword [esi + 0x58]
push edi
call eax
push dword [esi + 4]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 4]
xor edx, edx
mov byte [ecx + eax + 8], dl
mov dword [ecx + eax], 0x7355202d
mov dword [ecx + eax + 4], 0x203a7265
push edi
push dword [esi + 4]
call fcn.0043fd30
add esp, 8
push dword [esi + 4]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 4]
mov dx, 0xa
mov word [ecx + eax], dx
mov eax, dword [esi + 0x28]
push dword [esi + 0x28]
call fcn.00436714
add esp, 4
mov ebx, eax
xor eax, eax
inc eax
push eax
push 0x800
call fcn.0043f591
add esp, 8
mov edi, eax
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x28]
push dword [eax + 8]
push dword [ecx + 4]
push dword [edx]
push dword [ebx*4 + 0x45c00c]
push 0x455dfd
push 0x7ff
push edi
call fcn.00424710
add esp, 0x1c
push dword [esi + 4]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 4]
mov dword [ecx + eax], 0x534f202d
mov dword [ecx + eax + 4], 0x72655620
mov dword [ecx + eax + 8], 0x6e6f6973
mov dword [ecx + eax + 0xb], 0x203a6e
push edi
push dword [esi + 4]
call fcn.0043fd30
add esp, 8
push dword [esi + 4]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 4]
mov di, 0xa
mov word [ecx + eax], di
push 0x455e8c
call fcn.004263cc
add esp, 4
push eax
push dword [esi + 4]
call fcn.0043fd30
add esp, 8
call fcn.0041ec9a
push eax
push dword [esi + 4]
call fcn.0043fd30
add esp, 8
push dword [esi + 4]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 4]
mov word [ecx + eax], di
mov di, 0xa
push dword [esi + 4]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 4]
movups xmm0, xmmword [0x455e64]
movups xmmword [ecx + eax], xmm0
movsd xmm0, qword [0x455e71]
movsd qword [ecx + eax + 0xd], xmm0
push dword [esi + 0x40]
push dword [esi + 4]
call fcn.0043fd30
add esp, 8
push dword [esi + 4]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 4]
mov word [ecx + eax], pe_nt_image_headers32
push dword [esi + 0x44]
push dword [esi + 4]
call fcn.0043fd30
add esp, 8
push dword [esi + 4]
call fcn.0043ff10
add esp, 4
mov ecx, dword [esi + 4]
mov word [ecx + eax], di
push 2
push 0x55
call fcn.0043f591
add esp, 8
mov dword [esi + 0x70], eax
mov dword [esi + 0x1c], 0x2849bf90
jmp 0x4300f1
mov eax, dword [esi + 0xac]
mov ecx, eax
not ecx
and ecx, 0xfffffffe
xor eax, 1
or eax, ecx
cmp eax, 0xffffffff
sete byte [esi + 0x26]
mov eax, dword [esi + 0xa8]
cmp eax, 0xa
setl byte [esi + 0x27]
mov dword [esi + 0x1c], 0x8079709a
jmp 0x4300f1
cmp eax, 0xd86c9c2d
jne 0x4300f1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret