Function at 0x410eb6
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
nop
mov eax, dword [0x42fb20]
cmp eax, 0x28
jne 0x41115e
call fcn.00409ffb
mov eax, 0
mov dword [ebp - 8], eax
mov eax, 0
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
mov dword [ebp - 0x18], eax
mov eax, 0
mov dword [ebp - 0x10], eax
mov eax, dword [0x42fb20]
cmp eax, 0x29
je 0x4110a6
mov eax, dword [ebp - 8]
cmp eax, 2
je 0x410fda
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.00410868
add esp, 8
test eax, eax
je 0x410f2a
jmp 0x410f55
mov eax, dword [ebp - 8]
test eax, eax
je 0x410f48
mov eax, str.invalid_type
push eax
call fcn.00404055
add esp, 4
jmp 0x410f55
mov eax, 2
mov dword [ebp - 8], eax
jmp 0x410fda
mov eax, 1
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x38]
and eax, 0xf
cmp eax, 3
jne 0x410f80
mov eax, dword [0x42fb20]
cmp eax, 0x29
jne 0x410f80
jmp 0x4110a6
mov eax, 3
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.00411235
add esp, 0x10
mov eax, dword [ebp - 0x38]
and eax, 0xf
cmp eax, 3
jne 0x410fb7
mov eax, str.parameter_declared_as_void
push eax
call fcn.00404055
add esp, 4
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.0040e955
add esp, 8
add eax, 3
and eax, 0xfffffffc
mov ecx, dword [ebp - 0x10]
add ecx, eax
mov dword [ebp - 0x10], ecx
jmp 0x41100d
mov eax, dword [0x42fb20]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
cmp eax, 0x139
jge 0x411000
mov eax, 0x42cd24
push eax
call fcn.004040c8
add esp, 4
mov eax, 0
mov dword [ebp - 0x38], eax
call fcn.00409ffb
lea eax, [ebp - 0x38]
push eax
call fcn.00426f21
add esp, 4
mov eax, dword [ebp - 4]
or eax, 0x20000000
mov ecx, 0
push ecx
mov ecx, 0
push ecx
lea ecx, [ebp - 0x38]
push ecx
push eax
call fcn.004044b7
add esp, 0x10
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x1c]
add eax, 0x14
mov dword [ebp - 0x18], eax
mov eax, dword [0x42fb20]
cmp eax, 0x29
jne 0x411063
jmp 0x4110a6
mov eax, 0x2c
push eax
call fcn.00404133
add esp, 4
mov eax, dword [ebp - 8]
cmp eax, 1
jne 0x4110a1
mov eax, dword [0x42fb20]
cmp eax, 0xcc
jne 0x4110a1
mov eax, 3
mov dword [ebp - 8], eax
call fcn.00409ffb
jmp 0x4110a6
jmp 0x410f01
mov eax, dword [ebp - 8]
cmp eax, 0
jne 0x4110ba
mov eax, 2
mov dword [ebp - 8], eax
mov eax, 0x29
push eax
call fcn.00404133
add esp, 4
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
and ecx, 0x780
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
and ecx, 0xfffff07f
mov dword [eax], ecx
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00410eb6
add esp, 8
mov eax, dword [ebp + 0xc]
add eax, 0xc
mov ecx, dword [ebp - 0x10]
mov edx, ecx
and edx, 0xff
shl edx, 8
mov dword [ebp - 0x3c], ecx
mov ecx, dword [eax]
and ecx, 0xffff00ff
or edx, ecx
mov dword [eax], edx
mov eax, dword [ebp + 0xc]
add eax, 0xc
mov ecx, dword [ebp - 8]
push ecx
mov ecx, dword [eax]
push ecx
mov eax, dword [ebp + 8]
push eax
mov eax, 0x20000000
push eax
call fcn.004044b7
add esp, 0x10
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x14
mov ecx, dword [ebp - 0x20]
mov dword [eax], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
or ecx, 6
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 4
mov ecx, dword [ebp - 0x1c]
mov dword [eax], ecx
jmp 0x411233
mov eax, dword [0x42fb20]
cmp eax, 0x5b
jne 0x411233
call fcn.00409ffb
mov eax, dword [0x42fb20]
cmp eax, 0x120
jne 0x411189
call fcn.00409ffb
mov eax, 0xffffffff
mov dword [ebp - 4], eax
mov eax, dword [0x42fb20]
cmp eax, 0x5d
je 0x4111c2
call fcn.00413605
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
cmp eax, 0
jge 0x4111c2
mov eax, str.invalid_array_size
push eax
call fcn.00404055
add esp, 4
mov eax, 0x5d
push eax
call fcn.00404133
add esp, 4
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
and ecx, 0x780
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
and ecx, 0xfffff87f
mov dword [eax], ecx
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00410eb6
add esp, 8
mov eax, dword [ebp - 4]
push eax
mov eax, 0
push eax
mov eax, dword [ebp + 8]
push eax
mov eax, 0x20000000
push eax
call fcn.004044b7
add esp, 0x10
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
or ecx, 0x20
or ecx, 4
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 4
mov ecx, dword [ebp - 0x1c]
mov dword [eax], ecx
leave
ret