Function at 0x422c00
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x486ac0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x328
mov dword [ebp - 0x14], 0
xor eax, eax
push ebx
push esi
xorps xmm0, xmm0
mov dword [ebp - 0x8c], ecx
push edi
movlpd qword [ebp - 0x54], xmm0
mov dword [ebp - 0x38], 7
mov dword [ebp - 0x3c], 0
mov word [ebp - 0x4c], ax
mov dword [ebp - 0x20], 0xf
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x34], al
mov dword [ebp - 0x1c], eax
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 4], 1
test ebx, ebx
je 0x42379e
mov edi, dword [ebx]
mov eax, edi
mov esi, dword [ebx + 4]
or eax, esi
je 0x42379e
xor ebx, ebx
mov dword [ebp - 0xd4], fcn.00469d6e
mov dword [ebp - 0xd0], ebx
push 0x40
lea eax, [ebp - 0x12c]
mov byte [ebp - 4], 2
push ebx
push eax
call fcn.004663d0
push 0x108
lea eax, [ebp - 0x234]
push ebx
push eax
call fcn.004663d0
add esp, 0x14
lea eax, [ebp - 0x12c]
push eax
push 0x40
push esi
mov esi, dword [ebp - 0x8c]
push edi
mov ecx, dword [esi + 4]
call fcn.0042f200
mov eax, 0x5a4d
cmp word [ebp - 0x12c], ax
je 0x422db2
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x54]
push eax
mov ecx, esi
call fcn.004237f0
mov eax, dword [ebp - 0x20]
cmp eax, 0x10
jb 0x422d46
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x34]
cmp ecx, 0xffffffff
jbe 0x422d06
call fcn.00469659
cmp ecx, 0x1000
jb 0x422d3d
test byte [ebp - 0x34], 0x1f
je 0x422d19
call fcn.00469659
mov ecx, dword [eax - 4]
cmp ecx, eax
jb 0x422d25
call fcn.00469659
sub eax, ecx
cmp eax, 4
jae 0x422d31
call fcn.00469659
cmp eax, 0x23
jbe 0x422d3b
call fcn.00469659
mov eax, ecx
push eax
call fcn.0044d89d
add esp, 4
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x20], 0xf
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x34], 0
cmp eax, 8
jb 0x4237cc
mov ecx, dword [ebp - 0x4c]
inc eax
cmp eax, 0x7fffffff
jbe 0x422d74
call fcn.00469659
add eax, eax
cmp eax, 0x1000
jb 0x4237c3
test byte [ebp - 0x4c], 0x1f
je 0x422d8c
call fcn.00469659
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x422d98
call fcn.00469659
sub ecx, eax
cmp ecx, 4
jae 0x422da4
call fcn.00469659
cmp ecx, 0x23
jbe 0x4237c1
call fcn.00469659
mov edi, dword [ebp + 0xc]
lea eax, [ebp - 0x234]
push ecx
mov ecx, dword [esi + 4]
push eax
mov eax, dword [ebp - 0xf0]
cdq
add eax, dword [edi]
push 0x108
adc edx, dword [edi + 4]
push edx
push eax
call fcn.0042f200
cmp dword [ebp - 0x234], 0x4550
je 0x422df7
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x54]
push eax
mov ecx, esi
call fcn.004237f0
jmp 0x422cee
mov ax, word [ebp - 0x21c]
mov edx, 0x10b
mov esi, dword [ebp - 0x1ac]
cmp ax, dx
cmove esi, dword [ebp - 0x1bc]
mov dword [ebp - 0x88], esi
test esi, esi
je 0x42376f
mov ecx, dword [ebp - 0x1a8]
cmp ax, dx
cmove ecx, dword [ebp - 0x1b8]
push ecx
mov dword [ebp - 0xc0], ecx
call fcn.0046f24c
mov ebx, eax
mov dword [ebp - 0x10], ebx
mov byte [ebp - 4], 2
mov ecx, esi
add ecx, dword [edi]
mov eax, 0
push ebx
push dword [ebp - 0xc0]
adc eax, dword [edi + 4]
push eax
push ecx
mov ecx, dword [ebp - 0x8c]
mov dword [ebp - 0xd0], ebx
mov ecx, dword [ecx + 4]
call fcn.0042f200
mov ecx, dword [ebx + 0x24]
mov edx, dword [ebx + 0x20]
sub ecx, esi
mov eax, dword [ebx + 0x1c]
sub edx, esi
sub eax, esi
add ecx, ebx
add edx, ebx
mov dword [ebp - 0xc8], ecx
add eax, ebx
mov dword [ebp - 0xc4], edx
xor esi, esi
mov dword [ebp - 0xcc], eax
cmp dword [ebx + 0x14], esi
jbe 0x42376f
mov edi, dword [ebp + 0x10]
xor eax, eax
cmp edi, 0xffff
ja 0x422eb3
movzx ecx, si
jmp 0x422ecb
cmp esi, dword [ebx + 0x18]
jae 0x423745
mov eax, dword [edx + esi*4]
sub eax, dword [ebp - 0x88]
movzx ecx, word [ecx + esi*2]
add eax, ebx
mov dword [ebp + 0x10], ecx
cmp edi, 0xffff
ja 0x4230da
movzx ecx, cx
add ecx, dword [ebx + 0x10]
movzx eax, di
cmp eax, ecx
jne 0x423113
mov eax, dword [ebp + 0x10]
xor edi, edi
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp - 0xcc]
movzx eax, ax
mov edx, dword [ebx]
mov ecx, edx
mov ebx, dword [ebx + 4]
mov esi, dword [esi + eax*4]
mov eax, ebx
add esi, edx
mov dword [ebp - 0x54], esi
adc edi, ebx
add ecx, dword [ebp - 0x88]
mov dword [ebp - 0x50], edi
adc eax, 0
cmp edi, eax
jb 0x42376c
ja 0x422f2d
cmp esi, ecx
jb 0x42376c
mov ecx, dword [ebp - 0xc0]
xor eax, eax
add ecx, edx
adc eax, ebx
add ecx, dword [ebp - 0x88]
adc eax, 0
cmp edi, eax
ja 0x42376c
jb 0x422f54
cmp esi, ecx
ja 0x42376c
push 0xff
lea eax, [ebp - 0x334]
push 0
push eax
call fcn.004663d0
mov ebx, dword [ebp - 0x8c]
lea eax, [ebp - 0x334]
add esp, 8
mov ecx, dword [ebx + 4]
push eax
push 0xff
push edi
push esi
call fcn.0042f200
lea eax, [ebp - 0x334]
push eax
lea ecx, [ebp - 0xa4]
call fcn.00401fa0
push ecx
push 0x49ac40
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 7
call fcn.00427400
push eax
push 0
lea eax, [ebp - 0xec]
push eax
lea ecx, [ebp - 0xa4]
call fcn.00410f31
push ecx
mov edx, eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xbc]
call fcn.00427bf0
add esp, 4
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0xd8]
cmp ecx, 0x10
jb 0x423030
mov eax, dword [ebp - 0xec]
inc ecx
cmp ecx, 0xffffffff
ja 0x422d01
cmp ecx, 0x1000
jb 0x423027
test al, 0x1f
jne 0x422d01
mov ecx, dword [eax - 4]
cmp ecx, eax
jae 0x422d01
sub eax, ecx
cmp eax, 4
jb 0x422d01
cmp eax, 0x23
ja 0x422d01
mov eax, ecx
push eax
call fcn.0044d89d
add esp, 4
push 0xffffffffffffffff
push ecx
push 0x49ac50
lea ecx, [ebp - 0xa4]
mov dword [ebp - 0xd8], 0xf
mov dword [ebp - 0xdc], 0
mov byte [ebp - 0xec], 0
call fcn.00427400
inc eax
lea ecx, [ebp - 0xa4]
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.00410f31
push ecx
lea edx, [ebp - 0xbc]
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x6c]
call fcn.00416520
add esp, 4
lea eax, [ebp - 0x6c]
mov byte [ebp - 4], 0xc
push eax
lea ecx, [ebp - 0x4c]
mov byte [ebp - 0x1a], 1
call fcn.004086bf
push ecx
push 0x49ac4c
lea ecx, [ebp - 0x84]
call fcn.00427400
test eax, eax
sete al
mov byte [ebp - 0x19], al
test al, al
lea eax, [ebp - 0x84]
je 0x423128
cmp dword [ebp - 0x70], 0x10
cmovae eax, dword [ebp - 0x84]
inc eax
push eax
call fcn.0046f29c
add esp, 4
mov word [ebp - 0x1c], ax
jmp 0x423131
mov ecx, edi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x423100
test dl, dl
je 0x4230fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x423100
add eax, 2
add ecx, 2
test dl, dl
jne 0x4230e0
xor eax, eax
jmp 0x423105
sbb eax, eax
or eax, 1
test eax, eax
je 0x422eeb
mov edx, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xc8]
inc esi
cmp esi, dword [ebx + 0x14]
jb 0x422ea4
jmp 0x42376f
push eax
lea ecx, [ebp - 0x34]
call fcn.00412068
push dword [ebp + 0x14]
xor eax, eax
mov ecx, 0x10b
cmp word [ebp - 0x21c], cx
mov ecx, ebx
setne al
push eax
push 0
lea eax, [ebp - 0x6c]
push eax
call fcn.00421d10
mov esi, dword [ebp + 8]
mov edx, eax
test edx, edx
jne 0x423352
lea eax, [ebp - 0x54]
mov ecx, esi
push eax
call fcn.004237f0
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x14], 1
cmp eax, 8
jb 0x4231c9
mov ecx, dword [ebp - 0x6c]
inc eax
cmp eax, 0x7fffffff
ja 0x422d01
add eax, eax
cmp eax, 0x1000
jb 0x4231c0
test cl, 0x1f
jne 0x422d01
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x422d01
sub ecx, eax
cmp ecx, 4
jb 0x422d01
cmp ecx, 0x23
ja 0x422d01
mov ecx, eax
push ecx
call fcn.0044d89d
add esp, 4
xor eax, eax
mov byte [ebp - 4], 0xa
mov word [ebp - 0x6c], ax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x58], 7
mov dword [ebp - 0x5c], 0
cmp eax, 0x10
jb 0x423235
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x84]
cmp ecx, 0xffffffff
ja 0x422d01
cmp ecx, 0x1000
jb 0x42322c
test al, 0x1f
jne 0x422d01
mov ecx, dword [eax - 4]
cmp ecx, eax
jae 0x422d01
sub eax, ecx
cmp eax, 4
jb 0x422d01
cmp eax, 0x23
ja 0x422d01
mov eax, ecx
push eax
call fcn.0044d89d
add esp, 4
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x70], 0xf
mov dword [ebp - 0x74], 0
mov byte [ebp - 0x84], 0
cmp eax, 0x10
jb 0x4232a5
lea ecx, [eax + 1]
mov eax, dword [ebp - 0xbc]
cmp ecx, 0xffffffff
ja 0x422d01
cmp ecx, 0x1000
jb 0x42329c
test al, 0x1f
jne 0x422d01
mov ecx, dword [eax - 4]
cmp ecx, eax
jae 0x422d01
sub eax, ecx
cmp eax, 4
jb 0x422d01
cmp eax, 0x23
ja 0x422d01
mov eax, ecx
push eax
call fcn.0044d89d
add esp, 4
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0xa8], 0xf
mov dword [ebp - 0xac], 0
mov byte [ebp - 0xbc], 0
cmp eax, 0x10
jb 0x42331b
lea ecx, [eax + 1]
mov eax, dword [ebp - 0xa4]
cmp ecx, 0xffffffff
ja 0x422d01
cmp ecx, 0x1000
jb 0x423312
test al, 0x1f
jne 0x422d01
mov ecx, dword [eax - 4]
cmp ecx, eax
jae 0x422d01
sub eax, ecx
cmp eax, 4
jb 0x422d01
cmp eax, 0x23
ja 0x422d01
mov eax, ecx
push eax
call fcn.0044d89d
add esp, 4
mov dword [ebp - 0x90], 0xf
mov dword [ebp - 0x94], 0
mov byte [ebp - 0xa4], 0
mov byte [ebp - 4], 0xd
push dword [ebp - 0x10]
call fcn.00469d6e
add esp, 4
lea ecx, [ebp - 0x54]
call fcn.0040a3c4
jmp 0x4237cc
cmp byte [ebp - 0x19], 0
je 0x42354a
cmp dword [ebp - 0x58], 8
lea eax, [ebp - 0x6c]
mov ecx, ebx
cmovae eax, dword [ebp - 0x6c]
push eax
movzx eax, word [ebp - 0x1c]
push eax
push edx
push esi
call fcn.00422c00
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x14], 1
cmp eax, 8
jb 0x4233d4
mov ecx, dword [ebp - 0x6c]
inc eax
cmp eax, 0x7fffffff
ja 0x422d01
add eax, eax
cmp eax, 0x1000
jb 0x4233cb
test cl, 0x1f
jne 0x422d01
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x422d01
sub ecx, eax
cmp ecx, 4
jb 0x422d01
cmp ecx, 0x23
ja 0x422d01
mov ecx, eax
push ecx
call fcn.0044d89d
add esp, 4
xor eax, eax
mov byte [ebp - 4], 0xa
mov word [ebp - 0x6c], ax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x58], 7
mov dword [ebp - 0x5c], 0
cmp eax, 0x10
jb 0x423440
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x84]
cmp ecx, 0xffffffff
ja 0x422d01
cmp ecx, 0x1000
jb 0x423437
test al, 0x1f
jne 0x422d01
mov ecx, dword [eax - 4]
cmp ecx, eax
jae 0x422d01
sub eax, ecx
cmp eax, 4
jb 0x422d01
cmp eax, 0x23
ja 0x422d01
mov eax, ecx
push eax
call fcn.0044d89d
add esp, 4
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x70], 0xf
mov dword [ebp - 0x74], 0
mov byte [ebp - 0x84], 0
cmp eax, 0x10
jb 0x4234b0
lea ecx, [eax + 1]
mov eax, dword [ebp - 0xbc]
cmp ecx, 0xffffffff
ja 0x422d01
cmp ecx, 0x1000
jb 0x4234a7
test al, 0x1f
jne 0x422d01
mov ecx, dword [eax - 4]
cmp ecx, eax
jae 0x422d01
sub eax, ecx
cmp eax, 4
jb 0x422d01
cmp eax, 0x23
ja 0x422d01
mov eax, ecx
push eax
call fcn.0044d89d
add esp, 4
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0xa8], 0xf
mov dword [ebp - 0xac], 0
mov byte [ebp - 0xbc], 0
cmp eax, 0x10
jb 0x423526
lea ecx, [eax + 1]
mov eax, dword [ebp - 0xa4]
cmp ecx, 0xffffffff
ja 0x422d01
cmp ecx, 0x1000
jb 0x42351d
test al, 0x1f
jne 0x422d01
mov ecx, dword [eax - 4]
cmp ecx, eax
jae 0x422d01
sub eax, ecx
cmp eax, 4
jb 0x422d01
cmp eax, 0x23
ja 0x422d01
mov eax, ecx
push eax
call fcn.0044d89d
add esp, 4
mov dword [ebp - 0x90], 0xf
mov dword [ebp - 0x94], 0
mov byte [ebp - 0xa4], 0
mov byte [ebp - 4], 0xe
jmp 0x42333a
cmp dword [ebp - 0x58], 8
lea ecx, [ebp - 0x6c]
lea eax, [ebp - 0x84]
cmovae ecx, dword [ebp - 0x6c]
cmp dword [ebp - 0x70], 0x10
push ecx
cmovae eax, dword [ebp - 0x84]
mov ecx, ebx
push eax
push edx
push esi
call fcn.00422c00
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x14], 1
cmp eax, 8
jb 0x4235cf
mov ecx, dword [ebp - 0x6c]
inc eax
cmp eax, 0x7fffffff
ja 0x422d01
add eax, eax
cmp eax, 0x1000
jb 0x4235c6
test cl, 0x1f
jne 0x422d01
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x422d01
sub ecx, eax
cmp ecx, 4
jb 0x422d01
cmp ecx, 0x23
ja 0x422d01
mov ecx, eax
push ecx
call fcn.0044d89d
add esp, 4
xor eax, eax
mov byte [ebp - 4], 0xa
mov word [ebp - 0x6c], ax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x58], 7
mov dword [ebp - 0x5c], 0
cmp eax, 0x10
jb 0x42363b
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x84]
cmp ecx, 0xffffffff
ja 0x422d01
cmp ecx, 0x1000
jb 0x423632
test al, 0x1f
jne 0x422d01
mov ecx, dword [eax - 4]
cmp ecx, eax
jae 0x422d01
sub eax, ecx
cmp eax, 4
jb 0x422d01
cmp eax, 0x23
ja 0x422d01
mov eax, ecx
push eax
call fcn.0044d89d
add esp, 4
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x70], 0xf
mov dword [ebp - 0x74], 0
mov byte [ebp - 0x84], 0
cmp eax, 0x10
jb 0x4236ab
lea ecx, [eax + 1]
mov eax, dword [ebp - 0xbc]
cmp ecx, 0xffffffff
ja 0x422d01
cmp ecx, 0x1000
jb 0x4236a2
test al, 0x1f
jne 0x422d01
mov ecx, dword [eax - 4]
cmp ecx, eax
jae 0x422d01
sub eax, ecx
cmp eax, 4
jb 0x422d01
cmp eax, 0x23
ja 0x422d01
mov eax, ecx
push eax
call fcn.0044d89d
add esp, 4
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0xa8], 0xf
mov dword [ebp - 0xac], 0
mov byte [ebp - 0xbc], 0
cmp eax, 0x10
jb 0x423721
lea ecx, [eax + 1]
mov eax, dword [ebp - 0xa4]
cmp ecx, 0xffffffff
ja 0x422d01
cmp ecx, 0x1000
jb 0x423718
test al, 0x1f
jne 0x422d01
mov ecx, dword [eax - 4]
cmp ecx, eax
jae 0x422d01
sub eax, ecx
cmp eax, 4
jb 0x422d01
cmp eax, 0x23
ja 0x422d01
mov eax, ecx
push eax
call fcn.0044d89d
add esp, 4
mov dword [ebp - 0x90], 0xf
mov dword [ebp - 0x94], 0
mov byte [ebp - 0xa4], 0
mov byte [ebp - 4], 0xf
jmp 0x42333a
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x54]
push eax
mov ecx, esi
call fcn.004237f0
mov dword [ebp - 0x14], 1
push ebx
mov byte [ebp - 4], 6
call fcn.00469d6e
add esp, 4
jmp 0x422cee
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x54]
push eax
mov ecx, esi
call fcn.004237f0
mov dword [ebp - 0x14], 1
mov byte [ebp - 4], 0x10
test ebx, ebx
je 0x422cee
push ebx
call fcn.00469d6e
add esp, 4
jmp 0x422cee
mov eax, dword fs:[0x18]
mov esi, dword [ebp + 8]
mov ecx, esi
mov dword [eax + 0xbf4], 0xc00000ef
lea eax, [ebp - 0x54]
push eax
call fcn.004237f0
jmp 0x422cee
mov ecx, eax
push ecx
call fcn.0044d89d
add esp, 4
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x10