Function at 0x406830
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, eax
sub esp, 0x2c
mov eax, dword [edx]
sub eax, 3
cmp eax, 0x26
jbe switch.0x00406851
add esp, 0x2c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00403e80
jmp dword [eax*4 + 0x47f6f4]
mov eax, dword [ebx + 0x104]
xor esi, esi
lea ebp, [ebx + 4]
jmp 0x406886
mov edi, eax
add eax, 1
add esi, 1
cmp esi, 0xa
mov byte [ebx + edi + 4], cl
mov dword [ebx + 0x104], eax
mov byte [ebx + 0x108], cl
je 0x406ce0
cmp eax, 0xff
movzx ecx, byte [esi + str.___vector_]
jne 0x406865
mov eax, dword [ebx + 0x110]
xor edi, edi
mov dword [esp + 0x18], edx
mov byte [esp + 0x1c], cl
mov byte [ebx + 0x103], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], ebp
call dword [ebx + 0x10c]
mov eax, 1
movzx ecx, byte [esp + 0x1c]
add dword [ebx + 0x124], 1
mov edx, dword [esp + 0x18]
jmp 0x40686a
mov eax, dword [ebx + 0x104]
xor esi, esi
lea edi, [ebx + 4]
jmp 0x406905
mov ecx, eax
add eax, 1
add esi, 1
cmp esi, 9
mov byte [ebx + ecx + 4], dl
mov dword [ebx + 0x104], eax
mov byte [ebx + 0x108], dl
je 0x406a90
cmp eax, 0xff
movzx edx, byte [esi + str._restrict]
jne 0x4068e4
mov eax, dword [ebx + 0x110]
mov byte [esp + 0x18], dl
mov byte [ebx + 0x103], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [ebx + 0x10c]
mov eax, 1
xor ecx, ecx
add dword [ebx + 0x124], 1
movzx edx, byte [esp + 0x18]
jmp 0x4068e9
mov edx, dword [edx + 4]
jmp case.0x406851.4
mov eax, dword [ebx + 0x104]
xor esi, esi
lea edi, [ebx + 4]
jmp 0x406986
mov ecx, eax
add eax, 1
add esi, 1
cmp esi, 9
mov byte [ebx + ecx + 4], dl
mov dword [ebx + 0x104], eax
mov byte [ebx + 0x108], dl
je 0x406a90
cmp eax, 0xff
movzx edx, byte [esi + str._volatile]
jne 0x406965
mov eax, dword [ebx + 0x110]
mov byte [esp + 0x18], dl
mov byte [ebx + 0x103], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [ebx + 0x10c]
mov eax, 1
xor ecx, ecx
add dword [ebx + 0x124], 1
movzx edx, byte [esp + 0x18]
jmp 0x40696a
mov eax, dword [ebx + 0x104]
xor esi, esi
lea edi, [ebx + 4]
jmp 0x406a01
mov ecx, eax
add eax, 1
add esi, 1
cmp esi, 6
mov byte [ebx + ecx + 4], dl
mov dword [ebx + 0x104], eax
mov byte [ebx + 0x108], dl
je 0x406a90
cmp eax, 0xff
movzx edx, byte [esi + str._const]
jne 0x4069e0
mov eax, dword [ebx + 0x110]
mov byte [esp + 0x18], dl
mov byte [ebx + 0x103], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [ebx + 0x10c]
mov eax, 1
xor ecx, ecx
add dword [ebx + 0x124], 1
movzx edx, byte [esp + 0x18]
jmp 0x4069e5
mov eax, dword [ebx + 0x104]
cmp eax, 0xff
lea ecx, [eax + 1]
je 0x406d40
mov byte [ebx + eax + 4], 0x20
mov dword [ebx + 0x104], ecx
mov byte [ebx + 0x108], 0x20
mov edx, dword [edx + 8]
jmp case.0x406851.4
test byte [ebx], 4
je 0x406d15
lea esi, [esi]
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebx + 0x104]
cmp eax, 0xff
lea edx, [eax + 1]
je 0x406d80
mov byte [ebx + eax + 4], 0x26
mov dword [ebx + 0x104], edx
mov byte [ebx + 0x108], 0x26
jmp 0x406a90
mov eax, dword [ebx + 0x104]
xor esi, esi
lea edi, [ebx + 4]
jmp 0x406aed
mov ecx, eax
add eax, 1
add esi, 1
cmp esi, 2
mov byte [ebx + ecx + 4], dl
mov dword [ebx + 0x104], eax
mov byte [ebx + 0x108], dl
je 0x406a90
cmp eax, 0xff
movzx edx, byte [esi + 0x47f6cb]
jne 0x406ad0
mov eax, dword [ebx + 0x110]
mov byte [esp + 0x18], dl
mov byte [ebx + 0x103], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [ebx + 0x10c]
mov eax, 1
xor ecx, ecx
add dword [ebx + 0x124], 1
movzx edx, byte [esp + 0x18]
jmp 0x406ad5
mov eax, dword [ebx + 0x104]
xor esi, esi
lea edi, [ebx + 4]
jmp 0x406b64
mov ecx, eax
add eax, 1
add esi, 1
cmp esi, 8
mov byte [ebx + ecx + 4], dl
mov dword [ebx + 0x104], eax
mov byte [ebx + 0x108], dl
je 0x406a90
cmp eax, 0xff
movzx edx, byte [esi + str.complex]
jne 0x406b43
mov eax, dword [ebx + 0x110]
mov byte [esp + 0x18], dl
mov byte [ebx + 0x103], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [ebx + 0x10c]
mov eax, 1
xor ecx, ecx
add dword [ebx + 0x124], 1
movzx edx, byte [esp + 0x18]
jmp 0x406b48
mov eax, dword [ebx + 0x104]
xor esi, esi
lea edi, [ebx + 4]
jmp 0x406be1
mov ecx, eax
add eax, 1
add esi, 1
cmp esi, 0xa
mov byte [ebx + ecx + 4], dl
mov dword [ebx + 0x104], eax
mov byte [ebx + 0x108], dl
je 0x406a90
cmp eax, 0xff
movzx edx, byte [esi + str.imaginary]
jne 0x406bc0
mov eax, dword [ebx + 0x110]
mov byte [esp + 0x18], dl
mov byte [ebx + 0x103], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [ebx + 0x10c]
mov eax, 1
xor ecx, ecx
add dword [ebx + 0x124], 1
movzx edx, byte [esp + 0x18]
jmp 0x406bc5
cmp byte [ebx + 0x108], 0x28
je 0x406c5f
mov eax, dword [ebx + 0x104]
cmp eax, 0xff
lea ecx, [eax + 1]
je 0x406df0
mov byte [ebx + eax + 4], 0x20
mov dword [ebx + 0x104], ecx
mov byte [ebx + 0x108], 0x20
mov edx, dword [edx + 4]
mov eax, ebx
xor esi, esi
lea edi, [ebx + 4]
call fcn.00403e80
mov eax, dword [ebx + 0x104]
jmp 0x406c97
mov ecx, eax
add eax, 1
add esi, 1
cmp esi, 3
mov byte [ebx + ecx + 4], dl
mov dword [ebx + 0x104], eax
mov byte [ebx + 0x108], dl
je 0x406a90
cmp eax, 0xff
movzx edx, byte [esi + 0x47f6e2]
jne 0x406c76
mov eax, dword [ebx + 0x110]
mov byte [esp + 0x18], dl
mov byte [ebx + 0x103], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [ebx + 0x10c]
mov eax, 1
xor ecx, ecx
add dword [ebx + 0x124], 1
movzx edx, byte [esp + 0x18]
jmp 0x406c7b
mov edx, dword [edx + 4]
mov eax, ebx
call fcn.00403e80
mov eax, dword [ebx + 0x104]
cmp eax, 0xff
lea edx, [eax + 1]
je 0x406db8
mov byte [ebx + eax + 4], 0x29
mov dword [ebx + 0x104], edx
mov byte [ebx + 0x108], 0x29
jmp 0x406a90
mov eax, dword [ebx + 0x104]
cmp eax, 0xff
lea edx, [eax + 1]
je 0x406e30
mov byte [ebx + eax + 4], 0x2a
mov dword [ebx + 0x104], edx
mov byte [ebx + 0x108], 0x2a
jmp 0x406a90
mov eax, dword [ebx + 0x110]
mov dword [esp + 0x18], edx
mov byte [ebx + 0x103], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
lea eax, [ebx + 4]
mov dword [esp], eax
call dword [ebx + 0x10c]
mov ecx, 1
xor eax, eax
add dword [ebx + 0x124], 1
mov edx, dword [esp + 0x18]
jmp 0x406a64
mov eax, dword [ebx + 0x110]
mov byte [ebx + 0x103], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
lea eax, [ebx + 4]
mov dword [esp], eax
call dword [ebx + 0x10c]
mov edx, 1
xor eax, eax
add dword [ebx + 0x124], 1
jmp 0x406aac
mov eax, dword [ebx + 0x110]
mov byte [ebx + 0x103], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
lea eax, [ebx + 4]
mov dword [esp], eax
call dword [ebx + 0x10c]
mov edx, 1
xor eax, eax
add dword [ebx + 0x124], 1
jmp 0x406cfe
mov eax, dword [ebx + 0x110]
mov dword [esp + 0x18], edx
mov byte [ebx + 0x103], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
lea eax, [ebx + 4]
mov dword [esp], eax
call dword [ebx + 0x10c]
mov ecx, 1
xor eax, eax
add dword [ebx + 0x124], 1
mov edx, dword [esp + 0x18]
jmp 0x406c4d
mov eax, dword [ebx + 0x110]
mov byte [ebx + 0x103], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
lea eax, [ebx + 4]
mov dword [esp], eax
call dword [ebx + 0x10c]
mov edx, 1
xor eax, eax
add dword [ebx + 0x124], 1
jmp 0x406d29