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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
cmp edx, 0x4ff
ja 0x40cbb6
mov ebp, edx
mov eax, edx
mov edx, dword [ecx + 0xa0]
mov edi, ecx
shr ebp, 5
test edx, edx
je 0x40c861
lea ecx, [edx - 1]
lea ebx, [edi + ebp*4]
nop dword [eax]
cmp edx, 0x28
ja 0x40cba2
lea esi, [ebp + ecx]
cmp esi, 0x28
jae 0x40cb99
mov esi, dword [edi + ecx*4]
mov dword [ebx + ecx*4], esi
add ecx, 0xffffffff
jb 0x40c840
mov edx, eax
cmp eax, 0x20
jb 0x40caee
cmp ebp, 2
mov ecx, 1
mov dword [edi], 0
cmovae ecx, ebp
cmp edx, 0x40
jb 0x40caee
cmp ecx, 2
mov dword [edi + 4], 0
je 0x40caee
cmp ecx, 3
mov dword [edi + 8], 0
je 0x40caee
cmp ecx, 4
mov dword [edi + 0xc], 0
je 0x40caee
cmp ecx, 5
mov dword [edi + 0x10], 0
je 0x40caee
cmp ecx, 6
mov dword [edi + 0x14], 0
je 0x40caee
cmp ecx, 7
mov dword [edi + 0x18], 0
je 0x40caee
cmp ecx, 8
mov dword [edi + 0x1c], 0
je 0x40caee
cmp ecx, 9
mov dword [edi + 0x20], 0
je 0x40caee
cmp ecx, 0xa
mov dword [edi + 0x24], 0
je 0x40caee
cmp ecx, 0xb
mov dword [edi + 0x28], 0
je 0x40caee
cmp ecx, 0xc
mov dword [edi + 0x2c], 0
je 0x40caee
cmp ecx, 0xd
mov dword [edi + 0x30], 0
je 0x40caee
cmp ecx, 0xe
mov dword [edi + 0x34], 0
je 0x40caee
cmp ecx, 0xf
mov dword [edi + 0x38], 0
je 0x40caee
cmp ecx, 0x10
mov dword [edi + 0x3c], 0
je 0x40caee
cmp ecx, 0x11
mov dword [edi + 0x40], 0
je 0x40caee
cmp ecx, 0x12
mov dword [edi + 0x44], 0
je 0x40caee
cmp ecx, 0x13
mov dword [edi + 0x48], 0
je 0x40caee
cmp ecx, 0x14
mov dword [edi + 0x4c], 0
je 0x40caee
cmp ecx, 0x15
mov dword [edi + 0x50], 0
je 0x40caee
cmp ecx, 0x16
mov dword [edi + 0x54], 0
je 0x40caee
cmp ecx, 0x17
mov dword [edi + 0x58], 0
je 0x40caee
cmp ecx, 0x18
mov dword [edi + 0x5c], 0
je 0x40caee
cmp ecx, 0x19
mov dword [edi + 0x60], 0
je 0x40caee
cmp ecx, 0x1a
mov dword [edi + 0x64], 0
je 0x40caee
cmp ecx, 0x1b
mov dword [edi + 0x68], 0
je 0x40caee
cmp ecx, 0x1c
mov dword [edi + 0x6c], 0
je 0x40caee
cmp ecx, 0x1d
mov dword [edi + 0x70], 0
je 0x40caee
cmp ecx, 0x1e
mov dword [edi + 0x74], 0
je 0x40caee
cmp ecx, 0x1f
mov dword [edi + 0x78], 0
je 0x40caee
cmp ecx, 0x20
mov dword [edi + 0x7c], 0
je 0x40caee
cmp ecx, 0x21
mov dword [edi + 0x80], 0
je 0x40caee
cmp ecx, 0x22
mov dword [edi + 0x84], 0
je 0x40caee
cmp ecx, 0x23
mov dword [edi + 0x88], 0
je 0x40caee
cmp ecx, 0x24
mov dword [edi + 0x8c], 0
je 0x40caee
cmp ecx, 0x25
mov dword [edi + 0x90], 0
je 0x40caee
cmp ecx, 0x26
mov dword [edi + 0x94], 0
je 0x40caee
cmp ecx, 0x27
mov dword [edi + 0x98], 0
je 0x40caee
cmp ecx, 0x28
mov dword [edi + 0x9c], 0
jne 0x40cbcf
mov esi, dword [edi + 0xa0]
and edx, 0x1f
mov ecx, edx
mov dword [esp + 4], edx
add esi, ebp
test edx, edx
je 0x40cb89
lea ecx, [esi - 1]
cmp ecx, 0x27
ja 0x40cba2
mov dword [esp], ebp
mov ebp, dword [edi + esi*4 - 4]
mov ecx, eax
mov eax, esi
neg ecx
and ecx, 0x1f
mov dword [esp + 0xc], ecx
mov edx, ebp
shr edx, cl
test edx, edx
je 0x40cb3a
cmp esi, 0x27
ja 0x40cb99
mov dword [edi + esi*4], edx
lea eax, [esi + 1]
mov ecx, dword [esp]
mov dword [esp + 8], eax
lea edx, [ecx + 1]
cmp edx, esi
jae 0x40cb7b
nop dword [eax + eax]
lea ecx, [esi - 2]
cmp ecx, 0x28
jae 0x40cb9d
mov eax, dword [edi + esi*4 - 8]
mov ebx, edi
mov ecx, dword [esp + 4]
shl ebp, cl
mov ecx, dword [esp + 0xc]
mov edi, eax
shr edi, cl
or edi, ebp
mov ebp, eax
mov dword [ebx + esi*4 - 4], edi
dec esi
mov edi, ebx
cmp edx, esi
jb 0x40cb50
mov eax, dword [esp]
mov esi, dword [esp + 8]
mov ecx, dword [esp + 4]
shl dword [edi + eax*4], cl
mov dword [edi + 0xa0], esi
mov eax, edi
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, esi
jmp 0x40cba2
mov ecx, 0xffffffff
mov edx, 0x28
push 0x458778
call fcn.004538f0
add esp, 4
ud2
mov ecx, 0x4587a2
mov edx, 0x1d
push 0x458778
call fcn.00453a40
add esp, 4
ud2
mov ecx, 0x28
jmp 0x40cba2