Function at 0x451730
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 8]
sub esp, 0x1c
push ebx
push esi
push edi
mov esi, eax
test edx, edx
je 0x451775
mov eax, dword [edx + 0x18]
mov edi, dword [edx + 0x20]
mov ecx, dword [edx + 0x1c]
cmp edi, eax
jne 0x451756
mov edi, dword [edx + 0x24]
cmp edi, ecx
je 0x451780
cmp dword [edx + 0x4c], 0
je 0x451780
cmp byte [esi + 1], 0xd8
jne 0x451780
mov dword [edx + 0x20], eax
mov eax, dword [edx + 0x64]
mov dword [edx + 0x58], 4
mov dword [edx + 0x24], ecx
mov dword [edx + 0x5c], eax
xor eax, eax
xor edx, edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esi], 0xff
jne 0x4519f5
mov al, byte [esi + 1]
cmp al, 0xd9
jne 0x45179e
mov eax, 2
xor edx, edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, 3
cmp dword [edx + 0x58], ebx
je 0x4519f5
cmp al, 0xd8
jne 0x4517cd
mov dword [edx + 0x28], 0x67706a
mov dword [edx + 0x2c], 0
lea eax, [ebx - 1]
mov edx, SysReAllocStringLen
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp al, 0xff
jne 0x4517e2
mov eax, 1
mov edx, SysReAllocStringLen
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp al, 0xc0
jb 0x4519bb
cmp al, 0xcf
ja 0x4519bb
cmp al, 0xc4
je 0x4519bb
cmp al, 0xc8
je 0x4519bb
cmp al, 0xcc
je 0x4519bb
movzx ecx, byte [esi + 2]
movzx edx, byte [esi + 3]
movzx edi, byte [esi + 7]
shl ecx, 8
lea eax, [ecx + edx + 2]
cdq
add eax, 0
mov dword [ebp - 0x10], eax
movzx eax, byte [esi + 5]
adc edx, 0x80000000
mov ecx, pe_nt_image_headers32
imul ax, cx
mov dword [ebp - 0xc], edx
movzx edx, byte [esi + 6]
add ax, dx
mov word [ebp - 0x14], ax
mov eax, ecx
movzx ecx, byte [esi + 8]
imul di, ax
add di, cx
mov cl, byte [esi + 9]
cmp cl, 1
je 0x45186b
cmp cl, bl
je 0x45186b
or eax, 0xffffffff
or edx, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov bl, byte [ebp - 0x1a]
mov al, 9
mov byte [ebp - 1], 0
test cl, cl
je 0x4518e8
jmp 0x451880
inc al
movzx edx, al
movzx ecx, byte [edx + esi]
dec ecx
je 0x4518c6
dec ecx
je 0x4518ae
dec ecx
jne 0x4519ae
inc al
movzx ecx, al
mov cl, byte [ecx + esi]
mov dl, cl
shr dl, 4
and cl, 0xf
mov byte [ebp - 0x16], dl
mov byte [ebp - 0x15], cl
jmp 0x4518d9
inc al
movzx edx, al
mov dl, byte [edx + esi]
mov cl, dl
shr cl, 4
and dl, 0xf
mov byte [ebp - 0x18], cl
mov byte [ebp - 0x17], dl
jmp 0x4518d9
inc al
movzx ecx, al
mov cl, byte [ecx + esi]
mov bl, cl
shr bl, 4
and cl, 0xf
mov byte [ebp - 0x19], cl
mov cl, byte [ebp - 1]
inc cl
inc al
mov byte [ebp - 1], cl
cmp cl, byte [esi + 9]
jb 0x451880
test bl, bl
je 0x4519ae
cmp byte [ebp - 0x19], 0
je 0x4519ae
cmp byte [ebp - 0x18], 1
jne 0x4519ae
cmp byte [ebp - 0x17], 1
jne 0x4519ae
cmp byte [ebp - 0x16], 1
jne 0x4519ae
cmp byte [ebp - 0x15], 1
jne 0x4519ae
movzx ecx, bl
add ecx, ecx
movzx eax, di
add ecx, ecx
add ecx, ecx
cdq
idiv ecx
test edx, edx
jne 0x45193a
movzx edi, di
jmp 0x45194e
inc eax
movzx edx, bl
imul ax, dx
add ax, ax
add ax, ax
add ax, ax
movzx edi, ax
mov bl, byte [ebp - 0x19]
mov si, word [ebp - 0x14]
movzx ecx, bl
add ecx, ecx
movzx eax, si
add ecx, ecx
add ecx, ecx
cdq
idiv ecx
test edx, edx
jne 0x45196d
movzx eax, si
jmp 0x451981
inc eax
movzx ecx, bl
imul ax, cx
add ax, ax
add ax, ax
add ax, ax
movzx eax, ax
movzx eax, ax
cdq
mov ecx, eax
movzx eax, di
mov esi, edx
cdq
push edx
push eax
push esi
push ecx
call fcn.005af0e0
shld edx, eax, 2
add eax, eax
lea ecx, [eax + eax]
mov eax, dword [ebp + 8]
add ecx, 2
adc edx, 0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp al, 0xda
jne 0x4519c2
mov dword [edx + 0x58], ebx
mov al, byte [esi + 1]
cmp al, 0xc0
jb 0x4519f5
cmp al, 0xcc
jbe 0x4519d5
cmp al, 0xc0
jb 0x4519f5
cmp al, 0xfe
ja 0x4519f5
movzx edx, byte [esi + 2]
movzx eax, byte [esi + 3]
shl edx, 8
lea eax, [edx + eax + 2]
cdq
add eax, 0
adc edx, 0x80000000
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [edx + 4], 0
ja 0x451775
cmp dword [edx], 0x2000000
ja 0x451775
mov eax, edx
mov ecx, dword [eax + 0x60]
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
xor ebx, ebx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], ebx
cmp ebx, eax
jb 0x451a38
ja 0x451a28
cmp ecx, edx
jbe 0x451a38
mov edi, edx
or edi, eax
je 0x451a38
mov ecx, edx
mov ebx, eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], ebx
test ebx, ebx
ja 0x451a57
jb 0x451a43
cmp ecx, 1
ja 0x451a57
mov eax, ecx
add eax, 0
mov edx, ebx
adc edx, 0x80000000
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor edi, edi
mov ecx, 1
cmp edi, ebx
ja 0x451a8a
jb 0x451a73
cmp ecx, dword [ebp - 0x10]
jae 0x451a8a
lea esp, [esp]
mov ebx, dword [ebp - 0xc]
cmp byte [esi + ecx], 0xff
je 0x451ab4
add ecx, 1
adc edi, 0
cmp edi, ebx
jb 0x451a73
ja 0x451a8a
cmp ecx, dword [ebp - 0x10]
jb 0x451a70
mov esi, ecx
add esi, 0
mov ebx, edi
adc ebx, 0x80000000
mov dword [ebp - 0xc], ebx
mov ebx, edx
or ebx, eax
je 0x451adf
cmp eax, edi
jb 0x451b04
ja 0x451aaa
cmp edx, ecx
jbe 0x451b04
mov ecx, dword [ebp + 8]
xor eax, eax
mov dword [ecx + 8], eax
jmp 0x451b0e
mov esi, ecx
add esi, 0
mov ebx, edi
adc ebx, 0x80000000
mov dword [ebp - 0xc], ebx
mov ebx, edx
or ebx, eax
je 0x451adf
cmp eax, edi
jb 0x451aeb
ja 0x451ad4
cmp edx, ecx
jbe 0x451aeb
mov eax, dword [ebp + 8]
xor ecx, ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov edx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
sub edx, ecx
mov ecx, dword [ebp + 8]
sbb eax, edi
mov dword [ecx + 8], edx
mov edx, dword [ebp - 0xc]
mov dword [ecx + 0xc], eax
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
sub edx, ecx
mov ecx, dword [ebp + 8]
sbb eax, edi
mov dword [ecx + 8], edx
mov edx, dword [ecx + 8]
mov dword [ecx + 0xc], eax
test eax, eax
ja 0x451adf
jb 0x451b1f
cmp edx, 2
jae 0x451adf
add esi, edx
adc eax, dword [ebp - 0xc]
pop edi
and eax, 0x7fffffff
mov edx, eax
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret