Function at 0x405000
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
mov byte [ebp - 0x16], 0
cmp dword [ebp + 0xc], 0
jne 0x40502c
xor eax, eax
jmp 0x40579a
mov dword [0x40400c], 4
mov eax, dword [0x40400c]
mov dword [0x404020], eax
mov dword [0x40401c], 0xffffffff
mov dword [0x404014], 0
mov ecx, dword [0x404014]
mov dword [0x404008], ecx
mov dword [0x404018], 0
mov edx, dword [0x404018]
mov dword [0x404024], edx
mov eax, dword [ebp + 8]
mov dword [0x404028], eax
mov ecx, dword [ebp + 0xc]
mov dword [section..data], ecx
mov edx, dword [ebp + 0x10]
mov dword [0x404004], edx
mov eax, dword [0x404004]
mov dword [eax], 0xfc
mov ecx, dword [0x404004]
mov dword [ecx + 8], 0
mov edx, dword [0x404004]
mov dword [edx + 4], 0
cmp dword [section..data], 0
jbe 0x405258
mov byte [ebp - 0x15], 1
mov eax, dword [0x404028]
movzx ecx, byte [eax]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x20]
sub edx, 0x26
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], 0xcd
ja case.0x4050f1.1
mov eax, dword [ebp - 0x20]
movzx ecx, byte [eax + 0x4057d0]
jmp dword [ecx*4 + 0x4057a0]
cmp dword [0x40401c], 0xffffffff
jne 0x40510d
mov dword [0x40401c], 0
jmp 0x405111
mov byte [ebp - 0x16], 1
jmp 0x405222
cmp dword [0x40401c], 0xffffffff
jne 0x40512b
mov dword [0x40401c], 1
jmp 0x40512f
mov byte [ebp - 0x16], 1
jmp 0x405222
cmp dword [0x40401c], 0xffffffff
jne 0x405149
mov dword [0x40401c], 2
jmp 0x40514d
mov byte [ebp - 0x16], 1
jmp 0x405222
cmp dword [0x40401c], 0xffffffff
jne 0x405167
mov dword [0x40401c], 3
jmp 0x40516b
mov byte [ebp - 0x16], 1
jmp 0x405222
cmp dword [0x40401c], 0xffffffff
jne 0x405185
mov dword [0x40401c], 4
jmp 0x405189
mov byte [ebp - 0x16], 1
jmp 0x405222
cmp dword [0x40401c], 0xffffffff
jne 0x4051a3
mov dword [0x40401c], 5
jmp 0x4051a7
mov byte [ebp - 0x16], 1
jmp 0x405222
cmp dword [0x404020], 4
jne 0x4051be
mov dword [0x404020], 2
jmp 0x4051c2
mov byte [ebp - 0x16], 1
jmp 0x405222
cmp dword [0x40400c], 4
jne 0x4051d9
mov dword [0x40400c], 2
jmp 0x4051dd
mov byte [ebp - 0x16], 1
jmp 0x405222
cmp dword [ebp - 0x10], 0
jne 0x4051ee
mov dword [ebp - 0x10], 0xf0
jmp 0x4051f2
mov byte [ebp - 0x16], 1
jmp 0x405222
cmp dword [ebp - 0xc], 0
jne 0x405203
mov dword [ebp - 0xc], 0xf2
jmp 0x405207
mov byte [ebp - 0x16], 1
jmp 0x405222
cmp dword [ebp - 0xc], 0
jne 0x405218
mov dword [ebp - 0xc], 0xf3
jmp 0x40521c
mov byte [ebp - 0x16], 1
jmp 0x405222
mov byte [ebp - 0x15], 0
movzx edx, byte [ebp - 0x15]
test edx, edx
je 0x405233
movzx eax, byte [ebp - 0x16]
cmp eax, 1
jne 0x405235
jmp 0x405258
mov ecx, dword [0x404028]
add ecx, 1
mov dword [0x404028], ecx
mov edx, dword [section..data]
sub edx, 1
mov dword [section..data], edx
jmp 0x4050b5
movzx eax, byte [ebp - 0x16]
test eax, eax
je 0x405276
mov ecx, dword [0x404004]
mov dword [ecx], 0xfb
mov eax, 1
jmp 0x40579a
cmp dword [ebp - 0x10], 0
je 0x405291
mov edx, dword [0x404004]
mov eax, dword [edx + 8]
or eax, 0x40
mov ecx, dword [0x404004]
mov dword [ecx + 8], eax
cmp dword [section..data], 0
jbe 0x4052a5
mov edx, dword [0x404028]
mov al, byte [edx]
mov byte [ebp - 0x1c], al
cmp dword [section..data], 1
jbe 0x4052ba
mov ecx, dword [0x404028]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x1b], dl
cmp dword [section..data], 2
jbe 0x4052ce
mov eax, dword [0x404028]
mov cl, byte [eax + 2]
mov byte [ebp - 0x1a], cl
cmp dword [ebp - 0xc], 0
je 0x4052e0
mov edx, dword [ebp - 0x1c]
shl edx, 8
or edx, dword [ebp - 0xc]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 4], 0x402030
jmp 0x4052f2
mov eax, dword [ebp - 4]
add eax, 0x10
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
cmp dword [ecx], 0
je 0x405310
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
xor eax, dword [edx + 4]
mov ecx, dword [ebp - 4]
and eax, dword [ecx]
je 0x40530c
jmp 0x4052e9
jmp 0x405310
mov edx, dword [ebp - 4]
cmp dword [edx], 0
jne 0x40534d
mov eax, dword [0x404004]
mov dword [eax], 0xfc
cmp dword [section..data], 2
jae 0x40533b
mov ecx, dword [0x404004]
mov dword [ecx + 4], 2
jmp 0x405348
mov edx, dword [0x404004]
mov dword [edx + 4], 1
jmp 0x405702
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0xd]
mov edx, dword [0x404004]
mov dword [edx], ecx
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 9]
cmp ecx, 0x80
jne 0x405382
mov edx, dword [0x404004]
mov eax, dword [edx + 8]
or eax, 4
mov ecx, dword [0x404004]
mov dword [ecx + 8], eax
jmp 0x4053a4
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 9]
cmp eax, 0x81
jne 0x4053a4
mov ecx, dword [0x404004]
mov edx, dword [ecx + 8]
or edx, 8
mov eax, dword [0x404004]
mov dword [eax + 8], edx
mov ecx, dword [0x404028]
movzx edx, byte [ecx]
cmp edx, 0x44
je 0x40541a
mov eax, dword [0x404028]
movzx ecx, byte [eax]
cmp ecx, 0x4c
je 0x40541a
cmp dword [section..data], 3
jb 0x405446
mov edx, dword [0x404028]
movzx eax, byte [edx]
cmp eax, 0x81
je 0x4053e9
mov ecx, dword [0x404028]
movzx edx, byte [ecx]
cmp edx, 0x83
jne 0x405446
mov eax, dword [0x404028]
movzx ecx, byte [eax + 1]
cmp ecx, 0xc4
je 0x40540b
mov edx, dword [0x404028]
movzx eax, byte [edx + 1]
cmp eax, 0xec
jne 0x405446
mov ecx, dword [0x404028]
movzx edx, byte [ecx + 2]
and edx, 3
je 0x405446
mov eax, dword [0x404004]
mov ecx, dword [eax + 8]
or ecx, 0x80
mov edx, dword [0x404004]
mov dword [edx + 8], ecx
mov eax, dword [0x404004]
mov ecx, dword [eax]
or ecx, 0xfb
mov edx, dword [0x404004]
mov dword [edx], ecx
mov eax, dword [0x404028]
movzx ecx, byte [eax]
cmp ecx, 0x8e
jne 0x40546b
mov edx, dword [0x404004]
mov eax, dword [edx + 8]
or eax, 2
mov ecx, dword [0x404004]
mov dword [ecx + 8], eax
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 8]
cmp eax, 2
jne 0x4054ab
cmp dword [section..data], 0
jne 0x40548f
mov ecx, dword [0x404004]
mov dword [ecx + 4], 2
jmp 0x4054ab
mov edx, dword [0x404028]
add edx, 1
mov dword [0x404028], edx
mov eax, dword [section..data]
sub eax, 1
mov dword [section..data], eax
cmp dword [section..data], 0
jne 0x4054c1
mov ecx, dword [0x404004]
mov dword [ecx + 4], 2
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 9]
and eax, 1
je 0x4054e7
mov ecx, dword [0x404028]
movzx edx, byte [ecx]
and edx, 1
jne 0x4054e7
mov dword [0x404020], 1
jmp 0x405523
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 9]
and ecx, 8
je 0x40550d
mov edx, dword [0x404028]
movzx eax, byte [edx]
and eax, 8
jne 0x40550d
mov dword [0x404020], 1
jmp 0x405523
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + 9]
and edx, 0x20
je 0x405523
mov dword [0x404020], 2
mov dword [ebp - 0x14], 0
jmp 0x405535
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jae 0x405702
mov ecx, dword [0x404004]
cmp dword [ecx + 4], 0
je 0x405550
jmp 0x405702
cmp dword [ebp - 0x14], 0
jne 0x405562
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 0xa]
mov dword [ebp - 8], eax
jmp 0x40557e
cmp dword [ebp - 0x14], 1
jne 0x405574
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + 0xb]
mov dword [ebp - 8], edx
jmp 0x40557e
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0xc]
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 0
jne 0x405589
jmp 0x405702
mov edx, dword [ebp - 8]
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
sub eax, 1
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0x87
ja case.0x4055af.56
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 0x4058d4]
jmp dword [edx*4 + 0x4058a0]
cmp dword [section..data], 2
jae 0x4055cb
mov eax, dword [0x404004]
mov dword [eax + 4], 2
mov dword [0x404008], 1
jmp 0x4056fd
mov ecx, dword [ebp - 8]
push ecx
call fcn.004010f0
jmp 0x4056fd
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 9]
and eax, 2
je 0x40560b
mov ecx, dword [0x404028]
movzx edx, byte [ecx]
and edx, 2
je 0x40560b
push 1
call fcn.00401000
jmp 0x405616
mov eax, dword [0x404020]
push eax
call fcn.00401000
jmp 0x4056fd
mov ecx, dword [0x40400c]
add ecx, 1
cmp dword [section..data], ecx
jae 0x40563b
mov edx, dword [0x404004]
mov dword [edx + 4], 2
jmp 0x405645
mov eax, dword [0x40400c]
mov dword [0x404024], eax
jmp 0x4056fd
call fcn.00401060
jmp 0x4056fd
push 1
call fcn.004010c0
jmp 0x4056fd
mov ecx, dword [0x404020]
push ecx
call fcn.004010c0
jmp 0x4056fd
push 2
call fcn.00401000
jmp 0x4056fd
push 1
call fcn.00401000
jmp 0x4056fd
mov edx, dword [0x40400c]
add edx, 3
cmp dword [section..data], edx
jae 0x4056a7
mov eax, dword [0x404004]
mov dword [eax + 4], 2
jmp 0x4056bd
mov ecx, dword [0x40400c]
mov dword [0x404024], ecx
mov dword [0x404018], 2
jmp 0x4056fd
mov edx, dword [0x404028]
movzx eax, byte [edx + 1]
and eax, 0xc0
cmp eax, 0xc0
je 0x4056e2
mov ecx, dword [0x404004]
mov dword [ecx + 4], 5
mov dword [0x404008], 1
jmp 0x4056fd
jmp 0x4056fd
mov edx, dword [0x404004]
mov dword [edx + 4], 6
jmp 0x40552c
mov eax, dword [0x404004]
cmp dword [eax + 4], 0
je 0x405768
mov ecx, dword [0x404004]
cmp dword [ecx + 4], 1
jne 0x40574e
mov edx, dword [0x404028]
movzx eax, byte [edx]
cmp eax, 0xf
je 0x405738
mov ecx, dword [0x404028]
movzx edx, byte [ecx]
cmp edx, 0xff
jne 0x40574e
cmp dword [section..data], 0
jbe 0x40574e
mov eax, dword [section..data]
sub eax, 1
mov dword [section..data], eax
cmp dword [section..data], 0
jbe 0x405766
mov ecx, dword [section..data]
sub ecx, 1
mov dword [section..data], ecx
jmp 0x405791
mov edx, dword [0x404014]
mov eax, dword [0x404008]
lea ecx, [eax + edx + 1]
add ecx, dword [0x404024]
add ecx, dword [0x404018]
mov edx, dword [section..data]
sub edx, ecx
mov dword [section..data], edx
mov eax, dword [ebp + 0xc]
sub eax, dword [section..data]
mov esp, ebp
pop ebp
ret 0xc