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

Disassembly:
push edi
push esi
push ebx
mov ebx, eax
mov esi, edx
mov eax, dword [edx]
sub eax, 3
cmp eax, 0x22
ja case.0x404a7d.4
jmp dword [eax*4 + 0x40e7fc]
mov edx, esi
mov eax, ebx
pop ebx
pop esi
pop edi
jmp fcn.004032ac
mov edx, dword [edx + 4]
jmp 0x404a86
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x404aab
mov edx, dword [ebx + 8]
lea eax, [edx + 9]
cmp eax, dword [ebx + 0xc]
jbe 0x404cb6
mov ecx, 9
mov edx, str._restrict
lea esi, [esi]
mov eax, ebx
pop ebx
pop esi
pop edi
jmp fcn.00403224
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x404ad8
mov edx, dword [ebx + 8]
lea eax, [edx + 9]
cmp eax, dword [ebx + 0xc]
jbe 0x404ca1
mov ecx, 9
mov edx, str._volatile
jmp 0x404ab8
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x404afa
mov edx, dword [ebx + 8]
lea eax, [edx + 6]
cmp eax, dword [ebx + 0xc]
jbe 0x404c89
mov ecx, 6
mov edx, str._const
jmp 0x404ab8
mov edx, dword [ebx + 4]
test edx, edx
je 0x404c1f
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x404c1f
mov byte [edx + eax], 0x20
inc eax
mov dword [ebx + 8], eax
mov edx, dword [esi + 8]
jmp 0x404a86
test byte [ebx], 4
jne 0x404b54
mov edx, dword [ebx + 4]
test edx, edx
je 0x404c3e
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x404c3e
mov byte [edx + eax], 0x2a
inc eax
mov dword [ebx + 8], eax
lea esi, [esi]
pop ebx
pop esi
pop edi
ret
mov edx, dword [ebx + 4]
test edx, edx
je 0x404c10
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x404c10
mov byte [edx + eax], 0x26
inc eax
mov dword [ebx + 8], eax
jmp 0x404b54
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x404b8f
mov edx, dword [ebx + 8]
lea eax, [edx + 8]
cmp eax, dword [ebx + 0xc]
jbe 0x404c5b
mov ecx, 8
mov edx, str.complex
jmp 0x404ab8
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x404bb4
mov edx, dword [ebx + 8]
lea eax, [edx + 0xa]
cmp eax, dword [ebx + 0xc]
jbe 0x404c45
mov ecx, 0xa
mov edx, str.imaginary
jmp 0x404ab8
mov edx, dword [ebx + 4]
test edx, edx
je 0x404c30
mov eax, dword [ebx + 8]
test eax, eax
je 0x404bd8
cmp byte [edx + eax - 1], 0x28
je 0x404be5
cmp dword [ebx + 0xc], eax
jbe 0x404c30
mov byte [edx + eax], 0x20
inc eax
mov dword [ebx + 8], eax
mov edx, dword [esi + 4]
mov eax, ebx
call fcn.004032ac
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x404c01
mov edx, dword [ebx + 8]
lea eax, [edx + 3]
cmp eax, dword [ebx + 0xc]
jbe 0x404c74
mov ecx, 3
mov edx, 0x40e6a6
jmp 0x404ab8
mov edx, 0x26
mov eax, ebx
pop ebx
pop esi
pop edi
jmp fcn.0040326c
mov edx, 0x20
mov eax, ebx
call fcn.0040326c
jmp 0x404b25
mov edx, 0x20
mov eax, ebx
call fcn.0040326c
jmp 0x404be5
mov edx, 0x2a
jmp 0x404c15
lea edi, [ecx + edx]
mov esi, str.imaginary
cld
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
add dword [ebx + 8], 0xa
jmp 0x404b54
lea eax, [ecx + edx]
mov dword [eax], 0x706d6f63
mov dword [eax + 4], 0x2078656c
add dword [ebx + 8], 8
jmp 0x404b54
lea eax, [ecx + edx]
mov word [eax], 0x3a3a
mov byte [eax + 2], 0x2a
add dword [ebx + 8], 3
jmp 0x404b54
lea eax, [ecx + edx]
mov dword [eax], 0x6e6f6320
mov word [eax + 4], 0x7473
add dword [ebx + 8], 6
jmp 0x404b54
lea edi, [ecx + edx]
mov esi, str._volatile
cld
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
add dword [ebx + 8], 9
jmp 0x404b54
lea edi, [ecx + edx]
mov esi, str._restrict
jmp 0x404ca9