Function at 0x42fdf6
Capabilities:
Parse pe header

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48dec1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x330
xor eax, eax
mov dword [ebp - 0xb8], 0
push esi
xorps xmm0, xmm0
mov dword [ebp - 0xa0], eax
push edi
mov dword [ebp - 0x20], ecx
movlpd qword [ebp - 0xc0], xmm0
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa4], 7
mov word [ebp - 0xb8], ax
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], 0xf
mov byte [ebp - 0xa0], al
mov dword [ebp - 0x88], eax
mov dword [ebp - 4], eax
mov eax, dword [ebx + 0xc]
mov esi, dword [eax + 4]
mov eax, dword [eax]
or eax, esi
jne 0x42fe7b
mov esi, dword [ebx + 8]
mov dword [esi], 0xc00000ef
mov byte [esi + 0x48], al
jmp 0x43010e
xor edi, edi
mov dword [ebp - 0xc8], fcn.0046f5b4
mov dword [ebp - 0xc4], edi
push 0x40
lea eax, [ebp - 0x138]
mov byte [ebp - 4], 1
push edi
push eax
call fcn.0046ce00
add esp, 0xc
lea eax, [ebp - 0x240]
push 0x108
push edi
push eax
call fcn.0046ce00
mov ecx, dword [ebp - 0x20]
lea eax, [ebp - 0x138]
add esp, 8
mov ecx, dword [ecx + 4]
push eax
push 0x40
push esi
mov esi, dword [ebx + 0xc]
push dword [esi]
call fcn.00434230
mov eax, 0x5a4d
cmp word [ebp - 0x138], ax
je 0x42fef2
mov esi, dword [ebx + 8]
mov dword [esi], 0xc000012f
mov byte [esi + 0x48], 0
jmp 0x43010e
push ecx
lea eax, [ebp - 0x240]
push eax
mov eax, dword [ebp - 0xfc]
cdq
add eax, dword [esi]
push 0x108
adc edx, dword [esi + 4]
push edx
push eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 4]
call fcn.00434230
cmp dword [ebp - 0x240], 0x4550
je 0x42ff36
mov esi, dword [ebx + 8]
mov dword [esi], 0xc000007b
mov byte [esi + 0x48], 0
jmp 0x43010e
mov eax, dword [ebp - 0x228]
mov edx, 0x10b
mov ecx, dword [ebp - 0x1b8]
cmp ax, dx
cmove ecx, dword [ebp - 0x1c8]
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x4300f0
mov esi, dword [ebp - 0x1b4]
cmp ax, dx
cmove esi, dword [ebp - 0x1c4]
push esi
mov dword [ebp - 0x40], esi
call fcn.0047647b
mov edi, eax
mov dword [ebp - 0x48], edi
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x18]
mov byte [ebp - 4], 1
push edi
add edx, dword [eax]
mov eax, dword [eax + 4]
push esi
adc eax, 0
mov dword [ebp - 0xc4], edi
push eax
mov eax, dword [ebp - 0x20]
push edx
mov ecx, dword [eax + 4]
call fcn.00434230
test eax, eax
jns 0x42ffb7
mov esi, dword [ebx + 8]
mov dword [esi], eax
mov byte [esi + 0x48], 0
mov byte [ebp - 4], 5
jmp 0x430101
mov edx, edi
mov dword [ebp - 0x3c], edx
cmp esi, 0x28
ja 0x43004a
mov ecx, dword [edi + 0x14]
cmp ecx, dword [edi + 0x18]
cmovbe ecx, dword [edi + 0x18]
imul eax, ecx, 0xff
add eax, dword [edi + 0x24]
sub eax, dword [ebp - 0x18]
push eax
mov dword [ebp - 0x40], eax
call fcn.0047647b
mov esi, eax
add esp, 4
mov dword [ebp - 0x3c], esi
mov eax, edi
mov byte [ebp - 4], 6
mov edi, esi
mov dword [ebp - 0x48], edi
mov dword [ebp - 0xc4], edi
test eax, eax
je 0x43000a
push eax
call fcn.0046f5b4
add esp, 4
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x18]
push ecx
mov byte [ebp - 4], 1
add edx, dword [eax]
mov eax, dword [eax + 4]
push esi
push dword [ebp - 0x40]
adc eax, 0
push eax
mov eax, dword [ebp - 0x20]
push edx
mov ecx, dword [eax + 4]
call fcn.00434230
test eax, eax
jns 0x430048
mov esi, dword [ebx + 8]
mov dword [esi], eax
mov byte [esi + 0x48], 0
cmp dword [ebp - 0x3c], 0
mov byte [ebp - 4], 7
jmp 0x430103
mov edx, edi
mov eax, dword [ebp - 0x18]
mov esi, dword [edx + 0x20]
mov ecx, dword [edx + 0x24]
sub esi, eax
add esi, edx
sub ecx, eax
mov dword [ebp - 0x64], esi
add ecx, edx
mov esi, dword [edx + 0x1c]
sub esi, eax
mov dword [ebp - 0x14], ecx
mov eax, dword [edx + 0x14]
add esi, edx
mov dword [ebp - 0x1c], esi
xor esi, esi
mov dword [ebp - 0x68], eax
test eax, eax
je 0x4300f0
nop word [eax + eax]
mov eax, dword [ebx + 0x10]
cmp eax, 0xffff
ja 0x4300a1
movzx eax, si
mov ecx, eax
mov edx, eax
mov eax, dword [ebp - 0x3c]
add ecx, dword [eax + 0x10]
mov eax, dword [ebx + 0x10]
movzx eax, ax
cmp eax, ecx
jmp 0x4300e5
cmp esi, dword [edx + 0x18]
jae 0x430908
mov ecx, eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + esi*4]
sub eax, dword [ebp - 0x18]
add eax, edx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4300d7
test dl, dl
je 0x4300d3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4300d7
add eax, 2
add ecx, 2
test dl, dl
jne 0x4300b7
xor eax, eax
jmp 0x4300dc
sbb eax, eax
or eax, 1
mov edx, dword [ebp - 0x14]
test eax, eax
movzx edx, word [edx + esi*2]
je 0x430130
mov edx, dword [ebp - 0x3c]
inc esi
cmp esi, dword [ebp - 0x68]
jb 0x430080
mov esi, dword [ebx + 8]
mov dword [esi], 0xc0000225
mov byte [esi + 0x48], 0
mov byte [ebp - 4], 0x14
test edi, edi
je 0x43010e
push edi
call fcn.0046f5b4
add esp, 4
lea ecx, [ebp - 0xc0]
call fcn.00423000
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x10
mov esi, dword [ebp - 0x1c]
mov ecx, 0
movzx eax, dx
mov edx, dword [ebx + 0xc]
mov esi, dword [esi + eax*4]
add esi, dword [edx]
mov eax, dword [edx + 4]
mov edx, dword [edx]
adc ecx, eax
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
adc eax, 0
mov dword [ebp - 0xc0], esi
mov dword [ebp - 0xbc], ecx
cmp ecx, eax
jb 0x4308e2
ja 0x430171
cmp esi, edx
jb 0x4308e2
mov ecx, dword [ebx + 0xc]
xor eax, eax
mov edx, dword [ebp - 0x40]
add edx, dword [ecx]
adc eax, dword [ecx + 4]
add edx, dword [ebp - 0x18]
adc eax, 0
cmp dword [ebp - 0x14], eax
ja 0x4308e2
jb 0x430197
cmp esi, edx
ja 0x4308e2
push 0xff
lea eax, [ebp - 0x340]
push 0
push eax
call fcn.0046ce00
add esp, 8
lea eax, [ebp - 0x340]
push eax
mov eax, dword [ebp - 0x20]
push 0xff
push dword [ebp - 0x14]
mov ecx, dword [eax + 4]
push esi
call fcn.00434230
lea ecx, [ebp - 0x340]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x50], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x4c], 0xf
mov byte [ebp - 0x60], 0
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4301f0
sub ecx, edx
lea eax, [ebp - 0x340]
push ecx
push eax
lea ecx, [ebp - 0x60]
call fcn.0042db80
push ecx
push 0x4a5860
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 9
call fcn.00432220
mov edx, eax
mov dword [ebp - 0xf8], 0
cmp dword [ebp - 0x50], edx
lea eax, [ebp - 0x60]
lea ecx, [ebp - 0xf8]
mov dword [ebp - 0xe8], 0
cmovb edx, dword [ebp - 0x50]
cmp dword [ebp - 0x4c], 0x10
push edx
cmovae eax, dword [ebp - 0x60]
push eax
mov dword [ebp - 0xe4], 0xf
mov byte [ebp - 0xf8], 0
call fcn.0042db80
push 4
push str..dll
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 0xa
call fcn.004225a0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x80], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x70], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0xe4]
cmp edx, 0x10
jb 0x4302ec
mov ecx, dword [ebp - 0xf8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4302e2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43091e
push edx
push ecx
call fcn.0046afcf
add esp, 8
push ecx
push 0x4a585c
lea ecx, [ebp - 0x60]
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xe4], 0xf
mov byte [ebp - 0xf8], 0
call fcn.00432220
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0xf
lea ecx, [eax + 1]
mov byte [ebp - 0x38], 0
mov eax, dword [ebp - 0x50]
cmp eax, ecx
jb 0x430923
sub eax, ecx
or edi, 0xffffffff
cmp eax, 0xffffffff
cmovb edi, eax
cmp dword [ebp - 0x4c], 0x10
lea eax, [ebp - 0x60]
cmovae eax, dword [ebp - 0x60]
add eax, ecx
mov dword [ebp - 0x1c], eax
cmp edi, 0xf
ja 0x430371
push edi
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x28], edi
push eax
call fcn.0046c880
mov byte [ebp + edi - 0x38], 0
jmp 0x4303c3
cmp edi, 0x7fffffff
ja 0x430928
mov eax, edi
or eax, 0xf
cmp eax, 0x7fffffff
jbe 0x430390
mov eax, 0x7fffffff
jmp 0x43039a
mov ecx, 0x16
cmp eax, ecx
cmovb eax, ecx
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x38]
inc eax
push eax
call fcn.00406360
push edi
push dword [ebp - 0x1c]
mov esi, eax
mov dword [ebp - 0x28], edi
mov eax, dword [ebp - 0x14]
push esi
mov dword [ebp - 0x24], eax
call fcn.0046c880
mov byte [esi + edi], 0
mov dword [ebp - 0x38], esi
add esp, 0xc
push ecx
lea edx, [ebp - 0x80]
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xe0]
call fcn.004342e0
add esp, 4
lea eax, [ebp - 0xe0]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp - 0xb8]
mov byte [ebp - 0x86], 1
call fcn.0042b110
push ecx
push 0x4a5868
lea ecx, [ebp - 0x38]
call fcn.00432220
test eax, eax
sete byte [ebp - 0x85]
test eax, eax
lea eax, [ebp - 0x38]
jne 0x430435
cmp dword [ebp - 0x24], 0x10
cmovae eax, dword [ebp - 0x38]
inc eax
push eax
call fcn.00473116
add esp, 4
mov word [ebp - 0x88], ax
jmp 0x430528
cmp dword [ebp - 0x24], 0x10
mov ecx, dword [ebp - 0x8c]
cmovae eax, dword [ebp - 0x38]
mov edi, dword [ebp - 0x28]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x64], ecx
cmp edi, ecx
ja 0x43047a
cmp ecx, 0x10
mov dword [ebp - 0x90], edi
push edi
lea esi, [ebp - 0xa0]
cmovae esi, dword [ebp - 0xa0]
push eax
push esi
call fcn.0046c880
add esp, 0xc
mov byte [edi + esi], 0
jmp 0x430528
cmp edi, 0x7fffffff
ja 0x43092d
mov esi, edi
or esi, 0xf
cmp esi, 0x7fffffff
jbe 0x43049a
mov esi, 0x7fffffff
jmp 0x4304b8
mov edx, ecx
mov eax, 0x7fffffff
shr edx, 1
sub eax, edx
cmp ecx, eax
jbe 0x4304b0
mov esi, 0x7fffffff
jmp 0x4304b8
lea eax, [ecx + edx]
cmp esi, eax
cmovb esi, eax
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0xa0]
call fcn.00406360
push edi
push dword [ebp - 0x1c]
mov dword [ebp - 0x8c], esi
mov esi, eax
push esi
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x90], edi
call fcn.0046c880
mov ecx, dword [ebp - 0x64]
add esp, 0xc
mov byte [edi + esi], 0
cmp ecx, 0x10
jb 0x430522
lea edx, [ecx + 1]
mov ecx, dword [ebp - 0xa0]
mov eax, ecx
cmp edx, 0x1000
jb 0x430518
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x430932
push edx
push ecx
call fcn.0046afcf
add esp, 8
mov dword [ebp - 0xa0], esi
push dword [ebx + 0x14]
mov edi, dword [ebp - 0x20]
xor eax, eax
mov ecx, 0x10b
cmp word [ebp - 0x228], cx
mov ecx, edi
setne al
push eax
push 0
lea eax, [ebp - 0xe0]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.0042f6e0
mov byte [ebp - 4], 0xf
cmp dword [ebp - 0x44], 0
jne 0x43067c
push 0x107
sub esp, 0x40
lea eax, [ebp - 0xc0]
mov ecx, esp
push eax
call fcn.00430940
mov esi, dword [ebx + 8]
mov ecx, esi
call fcn.00431f50
lea ecx, [ebp - 0x44]
call fcn.00421b20
lea ecx, [ebp - 0xe0]
call fcn.00421be0
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x24]
cmp edx, 0x10
jb 0x4305cd
mov ecx, dword [ebp - 0x38]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4305c3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x430932
push edx
push ecx
call fcn.0046afcf
add esp, 8
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
cmp edx, 0x10
jb 0x430617
mov ecx, dword [ebp - 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x43060d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x430932
push edx
push ecx
call fcn.0046afcf
add esp, 8
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
cmp edx, 0x10
jb 0x430661
mov ecx, dword [ebp - 0x60]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x430657
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x430932
push edx
push ecx
call fcn.0046afcf
add esp, 8
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
mov byte [ebp - 0x60], 0
mov byte [ebp - 4], 0x10
jmp 0x4308d1
cmp byte [ebp - 0x85], 0
mov esi, dword [ebx + 8]
je 0x4307af
cmp dword [ebp - 0xcc], 8
lea eax, [ebp - 0xe0]
mov ecx, edi
cmovae eax, dword [ebp - 0xe0]
push eax
movzx eax, word [ebp - 0x88]
push eax
lea eax, [ebp - 0x44]
push eax
push esi
call fcn.0042fda0
lea ecx, [ebp - 0x44]
call fcn.00421b20
lea ecx, [ebp - 0xe0]
call fcn.00421be0
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x24]
cmp edx, 0x10
jb 0x430700
mov ecx, dword [ebp - 0x38]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4306f6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x430932
push edx
push ecx
call fcn.0046afcf
add esp, 8
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
cmp edx, 0x10
jb 0x43074a
mov ecx, dword [ebp - 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x430740
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x430932
push edx
push ecx
call fcn.0046afcf
add esp, 8
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
cmp edx, 0x10
jb 0x430794
mov ecx, dword [ebp - 0x60]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x43078a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x430932
push edx
push ecx
call fcn.0046afcf
add esp, 8
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
mov byte [ebp - 0x60], 0
mov byte [ebp - 4], 0x11
jmp 0x4308d1
cmp dword [ebp - 0xcc], 8
lea ecx, [ebp - 0xe0]
lea eax, [ebp - 0x38]
cmovae ecx, dword [ebp - 0xe0]
cmp dword [ebp - 0x24], 0x10
push ecx
cmovae eax, dword [ebp - 0x38]
mov ecx, edi
push eax
lea eax, [ebp - 0x44]
push eax
push esi
call fcn.0042fda0
lea ecx, [ebp - 0x44]
call fcn.00421b20
lea ecx, [ebp - 0xe0]
call fcn.00421be0
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x24]
cmp edx, 0x10
jb 0x430827
mov ecx, dword [ebp - 0x38]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x43081d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x430932
push edx
push ecx
call fcn.0046afcf
add esp, 8
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
cmp edx, 0x10
jb 0x430871
mov ecx, dword [ebp - 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x430867
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x430932
push edx
push ecx
call fcn.0046afcf
add esp, 8
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
cmp edx, 0x10
jb 0x4308bb
mov ecx, dword [ebp - 0x60]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4308b1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x430932
push edx
push ecx
call fcn.0046afcf
add esp, 8
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
mov byte [ebp - 0x60], 0
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x43010e
push eax
jmp 0x430106
push 0
sub esp, 0x40
lea eax, [ebp - 0xc0]
mov ecx, esp
push eax
call fcn.004233f0
mov esi, dword [ebx + 8]
mov ecx, esi
call fcn.00431f50
mov byte [ebp - 4], 0x13
jmp 0x430101
mov esi, dword [ebx + 8]
mov dword [esi], 0xc0000225
mov byte [esi + 0x48], 0
mov byte [ebp - 4], 8
jmp 0x430101
call fcn.0047234f
call fcn.00432350
call fcn.00402bc0
call fcn.00402bc0
call fcn.0047234f
int3