Function at 0x407c70
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.0x00407c91
add esp, 0x2c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00405200
jmp dword [eax*4 + 0x419884]
mov eax, dword [ebx + 0x104]
xor esi, esi
lea ebp, [ebx + 4]
jmp 0x407cc6
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 0x408120
cmp eax, 0xff
movzx ecx, byte [esi + str.___vector_]
jne 0x407ca5
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 0x407caa
mov eax, dword [ebx + 0x104]
xor esi, esi
lea edi, [ebx + 4]
jmp 0x407d45
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 0x407ed0
cmp eax, 0xff
movzx edx, byte [esi + str._restrict]
jne 0x407d24
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 0x407d29
mov edx, dword [edx + 4]
jmp case.0x407c91.4
mov eax, dword [ebx + 0x104]
xor esi, esi
lea edi, [ebx + 4]
jmp 0x407dc6
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 0x407ed0
cmp eax, 0xff
movzx edx, byte [esi + str._volatile]
jne 0x407da5
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 0x407daa
mov eax, dword [ebx + 0x104]
xor esi, esi
lea edi, [ebx + 4]
jmp 0x407e41
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 0x407ed0
cmp eax, 0xff
movzx edx, byte [esi + str._const]
jne 0x407e20
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 0x407e25
mov eax, dword [ebx + 0x104]
cmp eax, 0xff
lea ecx, [eax + 1]
je 0x408180
mov byte [ebx + eax + 4], 0x20
mov dword [ebx + 0x104], ecx
mov byte [ebx + 0x108], 0x20
mov edx, dword [edx + 8]
jmp case.0x407c91.4
test byte [ebx], 4
je 0x408155
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 0x4081c0
mov byte [ebx + eax + 4], 0x26
mov dword [ebx + 0x104], edx
mov byte [ebx + 0x108], 0x26
jmp 0x407ed0
mov eax, dword [ebx + 0x104]
xor esi, esi
lea edi, [ebx + 4]
jmp 0x407f2d
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 0x407ed0
cmp eax, 0xff
movzx edx, byte [esi + 0x41985b]
jne 0x407f10
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 0x407f15
mov eax, dword [ebx + 0x104]
xor esi, esi
lea edi, [ebx + 4]
jmp 0x407fa4
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 0x407ed0
cmp eax, 0xff
movzx edx, byte [esi + str.complex]
jne 0x407f83
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 0x407f88
mov eax, dword [ebx + 0x104]
xor esi, esi
lea edi, [ebx + 4]
jmp 0x408021
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 0x407ed0
cmp eax, 0xff
movzx edx, byte [esi + str.imaginary]
jne 0x408000
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 0x408005
cmp byte [ebx + 0x108], 0x28
je 0x40809f
mov eax, dword [ebx + 0x104]
cmp eax, 0xff
lea ecx, [eax + 1]
je 0x408230
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.00405200
mov eax, dword [ebx + 0x104]
jmp 0x4080d7
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 0x407ed0
cmp eax, 0xff
movzx edx, byte [esi + 0x419872]
jne 0x4080b6
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 0x4080bb
mov edx, dword [edx + 4]
mov eax, ebx
call fcn.00405200
mov eax, dword [ebx + 0x104]
cmp eax, 0xff
lea edx, [eax + 1]
je 0x4081f8
mov byte [ebx + eax + 4], 0x29
mov dword [ebx + 0x104], edx
mov byte [ebx + 0x108], 0x29
jmp 0x407ed0
mov eax, dword [ebx + 0x104]
cmp eax, 0xff
lea edx, [eax + 1]
je 0x408270
mov byte [ebx + eax + 4], 0x2a
mov dword [ebx + 0x104], edx
mov byte [ebx + 0x108], 0x2a
jmp 0x407ed0
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 0x407ea4
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 0x407eec
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 0x40813e
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 0x40808d
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 0x408169